diff options
Diffstat (limited to 'src/com/cyanogenmod/filemanager/model/Permission.java')
-rw-r--r-- | src/com/cyanogenmod/filemanager/model/Permission.java | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/src/com/cyanogenmod/filemanager/model/Permission.java b/src/com/cyanogenmod/filemanager/model/Permission.java new file mode 100644 index 00000000..61cd7b55 --- /dev/null +++ b/src/com/cyanogenmod/filemanager/model/Permission.java @@ -0,0 +1,181 @@ +/* + * Copyright (C) 2012 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cyanogenmod.filemanager.model; + +import java.io.Serializable; + +/** + * A class for represents permissions.<br/> + * <br/> + * Actual permissions refers to Unix permissions: + * <ul> + * <li>read</li> + * <li>write</li> + * <li>execute</li> + * </ul> + */ +public abstract class Permission implements Serializable { + + private static final long serialVersionUID = 5775987092282897912L; + + /** + * @hide + */ + public static final char UNASIGNED = '-'; + /** + * @hide + */ + public static final char READ = 'r'; + /** + * @hide + */ + public static final char WRITE = 'w'; + /** + * @hide + */ + public static final char EXECUTE = 'x'; + + private boolean mRead; + private boolean mWrite; + private boolean mExecute; + + /** + * Constructor of <code>Permission</code>. + * + * @param read If the object can be read + * @param write If the object can be written + * @param execute If the object can be executed + */ + public Permission(boolean read, boolean write, boolean execute) { + super(); + this.mRead = read; + this.mWrite = write; + this.mExecute = execute; + } + + /** + * Method that returns if the object can be read. + * + * @return boolean If the object can be read + */ + public boolean isRead() { + return this.mRead; + } + + /** + * Method that sets if the object can be read. + * + * @param read If the object can be read + */ + public void setRead(boolean read) { + this.mRead = read; + } + + /** + * Method that returns if the object can be written. + * + * @return boolean If the object can be written + */ + public boolean isWrite() { + return this.mWrite; + } + + /** + * Method that sets if the object can be written. + * + * @param write If the object can be written + */ + public void setWrite(boolean write) { + this.mWrite = write; + } + + /** + * Method that returns if the object can be executed. + * + * @return boolean If the object can be executed + */ + public boolean isExecute() { + return this.mExecute; + } + + /** + * Method that sets if the object can be executed. + * + * @param execute If the object can be executed + */ + public void setExecute(boolean execute) { + this.mExecute = execute; + } + + /** + * {@inheritDoc} + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (this.mExecute ? 1231 : 1237); + result = prime * result + (this.mRead ? 1231 : 1237); + result = prime * result + (this.mWrite ? 1231 : 1237); + return result; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + Permission other = (Permission) obj; + if (this.mExecute != other.mExecute) { + return false; + } + if (this.mRead != other.mRead) { + return false; + } + if (this.mWrite != other.mWrite) { + return false; + } + return true; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return "Permission [read=" + this.mRead + ", write=" + //$NON-NLS-1$ //$NON-NLS-2$ + this.mWrite + ", execute=" + this.mExecute + "]"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Method that returns a string representation of the permissions + * conforming with the unix style (rwx). + * + * @return String The string representation of the permissions + */ + public abstract String toRawString(); + +} |