if (result instanceof SFComponentDescription) {  ((SFComponentDescription)result).doLinkResolve(resState); }
   public void doLinkResolve(ResolutionState resState) throws SmartFrogCompileResolutionException {      Object key = null;      Object value = null;      Object result = null;      for (Enumeration e = context.keys(); e.hasMoreElements(); ) {         // Get next attribute key and value         key = e.nextElement();         value = context.get(key);         // If value is reference resolve and place result in its place         if (value instanceof ComponentResolver) {            // value is deploy resolvable            ((ComponentResolver) value).doLinkResolve(resState);         } else if ((value instanceof Reference) &&               (((Reference) value).getEager())) {            try {               result = sfResolve((Reference) value);/*               if (result instanceof Copying) {                  result = ((Copying) result).copy();                  if (result instanceof SFComponentDescription) {                     ((ComponentDescription) result).setParent(this);                     resState.haveResolved(true);                     resState.addUnresolved(((SFComponentDescription) result).sfCompleteName());                  }               } */               context.put(key, result);            } catch (Exception resex) {               resState.addUnresolved(value, sfCompleteName());            } catch (Throwable thr){              StringBuffer msg = new StringBuffer("Failed to resolve '");              msg.append(key.toString());              msg.append(" ");              msg.append(value.toString());              msg.append(";'");              if (thr instanceof java.lang.StackOverflowError) {                msg.append(". Possible cause: cyclic reference.");              }              throw new SmartFrogCompileResolutionException(msg.toString(), thr,                  sfCompleteName(), null, resState.unresolved());            }         }      }   }