package com.fourinone; import java.util.LinkedHashMap; import java.util.Map; import java.util.ArrayList; import java.util.Iterator; import java.util.regex.Pattern; import java.util.Hashtable; import java.util.List; public class ObjValue extends LinkedHashMap implements ParkStatg { public void setString(String keyStr, String valueStr){ super.put(keyStr, valueStr); } public String getString(Object keyStr){ //System.out.println("ObjValue get"); return (String)super.get(keyStr); } public int getStringInt(String keyStr){ return Integer.parseInt(getString(keyStr));//?=null } public boolean getStringBool(String keyStr){ return Boolean.parseBoolean(getString(keyStr));//null return false } String getSeparator(Object keyStr){ return getString(keyStr).replaceAll("\\\\","/"); } //2014.1.21 public byte getByte(Object keyStr){ Object obj = super.get(keyStr); return obj!=null?(byte)obj:Byte.MIN_VALUE; } public short getShort(Object keyStr){ Object obj = super.get(keyStr); return obj!=null?(short)obj:Short.MIN_VALUE; } //2013.12.27 public int getInt(Object keyStr){ Object obj = super.get(keyStr); return obj!=null?(int)obj:Integer.MIN_VALUE; } public boolean getBoolean(Object keyStr){ Object obj = super.get(keyStr); return obj!=null?(boolean)obj:false; } public ObjValue getWidely(String widelykey){ ObjValue obj = new ObjValue(); for(Iterator iter=this.keySet().iterator();iter.hasNext();){ String curkey = (String)iter.next(); if(Pattern.matches(widelykey, curkey)) obj.put(curkey, this.getObj(curkey)); } return obj; } public ObjValue removeWidely(String widelykey){ ObjValue obj = new ObjValue(); List<String> keylist = new ArrayList<String>(); for(Iterator iter=this.keySet().iterator();iter.hasNext();){ String curkey = (String)iter.next(); if(Pattern.matches(widelykey, curkey)) keylist.add(curkey); } for(String ck:keylist){ Object rvobj = this.remove(ck); if(rvobj!=null)obj.put(ck, rvobj); } return obj; } public void setObj(String keyStr, Object valueObj){ super.put(keyStr, valueObj); } public Object getObj(String keyStr){ //System.out.println("ObjValue getObj"); return super.get(keyStr); } /*public ObjValue getObjWidely(){ }*/ public ArrayList getObjNames(){ ArrayList al = new ArrayList(); for(Iterator iter=this.keySet().iterator();iter.hasNext();) al.add(iter.next()); return al; } public ArrayList getObjValues() { ArrayList al = new ArrayList(); for(Iterator iter=this.values().iterator();iter.hasNext();) al.add(iter.next()); return al; } public static void main(String[] args){ ObjValue ov = new ObjValue(); ov.setString("1","1"); ov.setString("1.1","11"); ov.setString("1.1.1","1111"); ov.setString("1.1.1.1","1111"); ov.setString("1.2","12"); ov.setString("1.2.1","121"); ov.setString("2","2"); ov.setString("22","22"); ov.setString("domain","1"); ov.setString("domain._me_ta.version","1"); ov.setString("domain.node1","1"); ov.setString("domain.node1._me_ta.version","1"); ov.setString("domain.node2","1"); ov.setString("domain.node2._me_ta.version","1"); ov.setString("domain.node2.a","1"); ov.setString("domain.node2.a._me_ta.version","1"); System.out.println(ov.getWidely("1.[^.]*.1")); System.out.println(ov.getWidely("1.1.*")); System.out.println(ov.getWidely("2\\w")); System.out.println(ov.getWidely("domain..*._me_ta.version")); System.out.println(ov.getWidely("domain.[^_me_ta]*")); String a = "domain.node1._me_ta.version"; System.out.println(a.substring(0,a.indexOf("._me_ta."))); } }