package railo.runtime.registry; /** * represent a single Registry Entry */ public final class RegistryEntry { /** * Field <code>TYPE_STRING</code> */ public static final short TYPE_STRING=0; /** * Field <code>TYPE_DWORD</code> */ public static final short TYPE_DWORD=1; /** * Field <code>TYPE_ANY</code> */ public static final short TYPE_ANY=2; /** * Field <code>TYPE_KEY</code> */ public static final short TYPE_KEY=3; /** * Field <code>REGSTR_TOKEN</code> */ public static final String REGSTR_TOKEN = "REG_SZ"; /** * Field <code>REGKEY_TOKEN</code> */ public static final String REGKEY_TOKEN = "REG_KEY"; /** * Field <code>REGDWORD_TOKEN</code> */ public static final String REGDWORD_TOKEN = "REG_DWORD"; private short type; private String key; private Object value; /** * constructor of the class * @param type (RegistryEntry.TYPE_DWORD, RegistryEntry.TYPE_STRING) * @param key * @param value * @throws RegistryException */ public RegistryEntry(short type,String key,Object value) throws RegistryException { if(type!=TYPE_DWORD && type!=TYPE_STRING && type!=TYPE_KEY) throw new RegistryException("invalid Registry Type definition"); this.type=type; this.key=key; this.value=value; } /** * @return Returns the key. */ public String getKey() { return key; } /** * @return Returns the type. */ public short getType() { return type; } /** * @return Returns the value. */ public Object getValue() { return value; } @Override public String toString() { try { return "Registry Entry: ["+key+" "+toStringType(type)+" "+value+"]"; } catch (RegistryException e) { return "Registry Entry: ["+key+" "+value+"]"; } } /** * cast a String type to a short Type * @param strType * @return * @throws RegistryException */ public static short toType(String strType) throws RegistryException { if(strType.equals(REGDWORD_TOKEN)) return RegistryEntry.TYPE_DWORD; else if(strType.equals(REGSTR_TOKEN)) return RegistryEntry.TYPE_STRING; else if(strType.equals(REGKEY_TOKEN)) return RegistryEntry.TYPE_KEY; throw new RegistryException(strType+ " is not a valid Registry Type"); } /** * cast a short type to a String Type * @param type * @return Registry String Type Definition * @throws RegistryException */ public static String toStringType(short type) throws RegistryException { if(type==TYPE_DWORD) return REGDWORD_TOKEN; else if(type==TYPE_STRING) return REGSTR_TOKEN; else if(type==TYPE_KEY) return REGKEY_TOKEN; throw new RegistryException("invalid Registry Type definition"); } /** * cast a short type to a String Type * @param type * @return Registry String Type Definition * @throws RegistryException */ public static String toCFStringType(short type) throws RegistryException { if(type==TYPE_DWORD) return "DWORD"; else if(type==TYPE_STRING) return "STRING"; else if(type==TYPE_KEY) return "KEY"; throw new RegistryException("invalid Registry Type definition"); } }