blob: 70991698398c60c09569047efed7ce1a098cd437 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.alibaba.jstorm.utils;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.json.simple.JSONAware;
//import com.alibaba.fastjson.JSONAware;
public class FileAttribute implements Serializable, JSONAware {
/** */
private static final long serialVersionUID = -5131640995402822835L;
private String fileName;
private String isDir;
private String modifyTime;
private String size;
public static final String FILE_NAME_FIELD = "fileName";
public static final String IS_DIR_FIELD = "isDir";
public static final String MODIFY_TIME_FIELD = "modifyTime";
public static final String SIZE_FIELD = "size";
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getIsDir() {
return isDir;
}
public void setIsDir(String isDir) {
this.isDir = isDir;
}
public String getModifyTime() {
return modifyTime;
}
public void setModifyTime(String modifyTime) {
this.modifyTime = modifyTime;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
@Override
public String toJSONString() {
Map<String, String> map = new HashMap<String, String>();
map.put(FILE_NAME_FIELD, fileName);
map.put(IS_DIR_FIELD, isDir);
map.put(MODIFY_TIME_FIELD, modifyTime);
map.put(SIZE_FIELD, size);
return JStormUtils.to_json(map);
}
public static FileAttribute fromJSONObject(Map jobj) {
if (jobj == null) {
return null;
}
FileAttribute attribute = new FileAttribute();
attribute.setFileName((String) jobj.get(FILE_NAME_FIELD));
attribute.setIsDir((String) jobj.get(IS_DIR_FIELD));
attribute.setModifyTime((String) jobj.get(MODIFY_TIME_FIELD));
attribute.setSize((String) jobj.get(SIZE_FIELD));
return attribute;
}
public static void main(String[] args) {
Map<String, FileAttribute> map = new HashMap<String, FileAttribute>();
FileAttribute attribute = new FileAttribute();
attribute.setFileName("test");
attribute.setIsDir("true");
attribute.setModifyTime(new Date().toString());
attribute.setSize("4096");
map.put("test", attribute);
System.out.println("Before:" + map);
String jsonString = JStormUtils.to_json(map);
Map<String, Map> map2 = (Map<String, Map>) JStormUtils.from_json(jsonString);
Map jObject = map2.get("test");
FileAttribute attribute2 = FileAttribute.fromJSONObject(jObject);
System.out.println("attribute2:" + attribute2);
}
}