public VariableBinding parseVariableBinding(String text) throws ParseException { String[] tokens = text.split(SEPARATOR, 3); if (tokens.length != 3) { throw new ParseException("Invalid format: "+ text, 0); } OID oid = new OID(oidFormat.parse(tokens[0])); String typeName = tokens[1]; String valueString = tokens[2]; if (typeName.equals(TYPE_NAME_4_OCTETSTRING_IN_HEX)) { OctetString os = (OctetString)parse(SMIConstants.SYNTAX_OCTET_STRING, ""); os.setValue(OctetString.fromHexString(valueString).getValue()); return new VariableBinding(oid, os); } else if (typeName.equals(AbstractVariable.getSyntaxString(BER.BITSTRING))) { BitString bs = (BitString)parse(BER.BITSTRING, ""); bs.setValue(BitString.fromHexString(valueString).getValue()); return new VariableBinding(oid, bs); } else { return new VariableBinding( oid, parse(AbstractVariable.getSyntaxFromString(typeName), valueString) ); } }