Exemplo n.º 1
0
 public static String toCompactExternalId(Object cycObject, CycAccess access)
     throws CycConnectionException {
   if ((cycObject == null) || (!DefaultCycObject.isCycLObject(cycObject))) {
     throw new IllegalArgumentException(cycObject + "is not a valid CycL object.");
   }
   try {
     if (cycObject instanceof Number) {
       return CompactHLIDConverter.converter().toCompactHLId((Number) cycObject);
     }
     if (cycObject instanceof CycNumberImpl) {
       return CompactHLIDConverter.converter()
           .toCompactHLId(((CycNumberImpl) cycObject).getNumber());
     }
     if (cycObject instanceof String) {
       return CompactHLIDConverter.converter().toCompactHLId((String) cycObject);
     }
   } catch (IOException ioe) {
     throw new CycConnectionException(ioe);
   }
   Object result = cycObjectToCompactExternalIdCache.get(cycObject);
   if (result != null) {
     return (String) result;
   }
   result =
       access
           .converse()
           .converseObject(
               "(compact-hl-external-id-string "
                   + DefaultCycObject.stringApiValue(cycObject)
                   + ")");
   if (!(result instanceof String)) {
     throw new BaseClientRuntimeException("Got invalid result: " + result);
   }
   cycObjectToCompactExternalIdCache.put(cycObject, (String) result);
   return (String) result;
 }