示例#1
0
 public void setTypeReference(TypeReference reference) {
   if (reference != null) {
     _typeReference.connectTo(reference.parentLink());
   } else {
     _typeReference.connectTo(null);
   }
 }
示例#2
0
 public void setInitialization(Expression expression) {
   if (expression != null) {
     _expression.connectTo(expression.parentLink());
   } else {
     _expression.connectTo(null);
   }
 }
  public void replace(TypeReference replacement, final Declaration declarator, TypeReference<?> in)
      throws LookupException {
    UnsafePredicate<TypeReference, LookupException> predicate =
        new UnsafePredicate<TypeReference, LookupException>() {
          @Override
          public boolean eval(TypeReference object) throws LookupException {
            return object.getDeclarator().sameAs(declarator);
          }
        };
    List<TypeReference> crefs = in.descendants(TypeReference.class, predicate);
    if (predicate.eval(in)) {
      crefs.add(in);
    }

    for (TypeReference cref : crefs) {
      TypeReference clonedReplacement = replacement.clone();
      TypeReference substitute =
          createNonLocalTypeReference(clonedReplacement, replacement.parent());

      //			TypeReference substitute;
      //			if(replacement.isDerived()) {
      //				Element oldParent = replacement.parent();
      //				replacement.setUniParent(null);
      //				substitute = createNonLocalTypeReference(replacement,oldParent);
      //			} else {
      //				substitute = createNonLocalTypeReference(replacement);
      //			}

      SingleAssociation crefParentLink = cref.parentLink();
      crefParentLink.getOtherRelation().replace(crefParentLink, substitute.parentLink());
    }
  }
 public void apply() {
   for (CrossReference cref : _targets) {
     SingleAssociation parentLink = cref.parentLink();
     Association childLink = parentLink.getOtherRelation();
     TypeReference namedTargetExpression = parameter().argument().substitutionReference().clone();
     childLink.replace(parentLink, namedTargetExpression.parentLink());
   }
 }
示例#5
0
 public TypeReference typeReference() {
   return (TypeReference) _typeReference.getOtherEnd();
 }
示例#6
0
 public Expression initialization() {
   return _expression.getOtherEnd();
 }