<div sclass="ine_div rdg">
<label sclass="itm_lab" value=" 權限 :" />
<checkbox id="l1" label="讀" checked="@bind(vm.orderContent.perm.canRead)"/>
<checkbox id="l2" label="寫" checked="@bind(vm.orderContent.perm.canWrite)"/>
<checkbox id="l3" label="執行" checked="@bind(vm.orderContent.perm.canExecute)"/>
</div>
--------------------------------------------
public static class FilePermission{
public final static int READ = 4;
public final static int WRITE = 2;
public final static int EXECUTE = 1;
private int value = 0;
private int mask = 7;
public FilePermission(){
this(0);
}
public FilePermission(int value){
this.value = value;
}
public int getValue(){
return value;
}
public void setValue(int value){
this.value = value;
}
@JsonIgnore
public boolean getCanRead(){
return (this.value & READ) > 0;
}
public void setCanRead(boolean read){
this.value = mask & ~READ & value | (read ? READ : 0 );
}
@JsonIgnore
public boolean getCanWrite(){
return (this.value & WRITE) > 0;
}
public void setCanWrite(boolean write){
this.value = mask & ~WRITE & value | (write ? WRITE : 0 );
}
@JsonIgnore
public boolean getCanExecute(){
return (this.value & EXECUTE) > 0;
}
public void setCanExecute(boolean execute){
this.value = mask & ~EXECUTE & value | (execute ? EXECUTE : 0 );
}
}
private List<Host> items = new ArrayList<Host>();
private String fileName;
private String token;
private String path;
private String group;
private FilePermission perm = new FileCopyOrderContent.FilePermission(0);
public List<Host> getItems() {
return items;
}
public void setItems(List<Host> items) {
this.items = items;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
public FilePermission getPerm() {
return perm;
}
public void setPerm(FilePermission perm) {
this.perm = perm;
}
@Override
public String getUrl() {
// TODO Auto-generated method stub
return UrlUtils.FILE_COPY;
}
java的位運算參考博客:並對作者表示感謝
http://www.cnblogs.com/zhengtao/articles/1916751.html
java的序列化反序列化
我們都知道,當我們new一個對象的時候,Java就會在內存中創建一個相應的對象供我們後續使用。如果我們把這個Java程序關掉的話,那麼這個對象也就隨着我們程序的關閉而消失,如何才能在這種情況下繼續保存這個對象呢?這就是Java序列化要做的事情。簡單地說,Java對象列化就是要把內存中的Java對象保存下來(持久化),以便可以在網絡上傳輸或今後繼續使用這個對象中的數據。
那麼對象序列化到底做了哪些事呢?其實很簡單,一個對象對於我們來說的意義其實就是對象裏保存的那些數據,序列化就是把這些數據轉換成二進制表示的對象流,你可以把它通過網絡傳輸到遠程,當然,也可以把這些信息保存在本地的文件裏。下面給出一個最簡單的Java的序列化與反序列化的例子,看懂這個例子,相信你應該也能跟我一樣,大概理解這是怎麼一回事了。
首先是一個Peraon類:
Person.java
WritePerson.java
那我們要怎麼才能看懂這些二進制數據呢?這就要用到我們的反序列化了。反序列化就是要把序列化後的二進制數據反向解析成可以正常使用的Java對象。現在讓我們來把剛纔的那個對象反序列化一下吧:
ReadPerson.java