Package org.eclipse.jdt.core

Examples of org.eclipse.jdt.core.IMemberValuePair


  private List<IMemberValuePair> findAnnotationDefaults(IType anno_type) throws JavaModelException {
    IMethod[] properties = anno_type.getMethods();
    List<IMemberValuePair> result = new ArrayList<IMemberValuePair>();
   
    for( IMethod property : properties ) {
      IMemberValuePair default_val_ = property.getDefaultValue();
      if( default_val_ != null )
        result.add(default_val_);
    }
   
    return result;
View Full Code Here


  private List<IMemberValuePair> findAnnotationDefaults(IType anno_type) throws JavaModelException {
    IMethod[] properties = anno_type.getMethods();
    List<IMemberValuePair> result = new ArrayList<IMemberValuePair>();
   
    for( IMethod property : properties ) {
      IMemberValuePair default_val_ = property.getDefaultValue();
      if( default_val_ != null )
        result.add(default_val_);
    }
   
    return result;
View Full Code Here

 
  private Relation isMultiRelation(IAnnotation anno, IType context) throws JavaModelException {
    //check if it has an array of annotations
    if (anno.getMemberValuePairs().length != 1)
      return null;
    IMemberValuePair pair = anno.getMemberValuePairs()[0];
    if (pair.getValueKind() != IMemberValuePair.K_ANNOTATION)
      return null;
    if (!(pair.getValue() instanceof Object[]))
      return null;
    if (((Object[])pair.getValue()).length < 2//can't be a multi-anno if there's less than two things in it
      return null;
   
   
    //check if those annotations are a relation
    IAnnotation inner = (IAnnotation)((Object[])pair.getValue())[0];
    String qName = Utilities.resolveType(context, inner.getElementName());
    return rels.findRelation(qName);
  }
View Full Code Here

    return rels.findRelation(qName);
  }
 
  private RelEffect parseEffect(IAnnotation effectAnno, Relation rel, IMethod method) throws JavaModelException {
    RelEffect effect = null;
    IMemberValuePair paramsPair = null;
    IMemberValuePair actEffectPair = null;
    IMemberValuePair testPair = null;
   
    switch (effectAnno.getMemberValuePairs().length) {
    case 1:
      paramsPair = effectAnno.getMemberValuePairs()[0];
      break;
    case 2:
      if (effectAnno.getMemberValuePairs()[0].getMemberName().equals("value")) {
        paramsPair = effectAnno.getMemberValuePairs()[0];
        actEffectPair = effectAnno.getMemberValuePairs()[1];
      }
      else {
        paramsPair = effectAnno.getMemberValuePairs()[1];
        actEffectPair = effectAnno.getMemberValuePairs()[0];
     
      break;
    case 3:
      if (effectAnno.getMemberValuePairs()[0].getMemberName().equals("value")) {
        paramsPair = effectAnno.getMemberValuePairs()[0];
        if (effectAnno.getMemberValuePairs()[1].getMemberName().equals("effect")) {
          actEffectPair = effectAnno.getMemberValuePairs()[1];
          testPair = effectAnno.getMemberValuePairs()[2];
        }
        else {
          actEffectPair = effectAnno.getMemberValuePairs()[2];
          testPair = effectAnno.getMemberValuePairs()[1];
       
      }
      else if (effectAnno.getMemberValuePairs()[1].getMemberName().equals("value")) {
        paramsPair = effectAnno.getMemberValuePairs()[1];
        if (effectAnno.getMemberValuePairs()[0].getMemberName().equals("effect")) {
          actEffectPair = effectAnno.getMemberValuePairs()[0];
          testPair = effectAnno.getMemberValuePairs()[2];
        }
        else {
          actEffectPair = effectAnno.getMemberValuePairs()[2];
          testPair = effectAnno.getMemberValuePairs()[0];
       
      }
      else {
        paramsPair = effectAnno.getMemberValuePairs()[2];
        if (effectAnno.getMemberValuePairs()[0].getMemberName().equals("effect")) {
          actEffectPair = effectAnno.getMemberValuePairs()[0];
          testPair = effectAnno.getMemberValuePairs()[1];
        }
        else {
          actEffectPair = effectAnno.getMemberValuePairs()[1];
          testPair = effectAnno.getMemberValuePairs()[0];
       
      }
      break;
    }
   
    Object[] objParams = (Object[])paramsPair.getValue();
    SpecVar[] params = new SpecVar[objParams.length];
   
    for (int ndx = 0; ndx < objParams.length; ndx++) {
      if (objParams[ndx].equals(SpecVar.WILD_CARD))
        params[ndx] = SpecVar.createWildCard();
      else
        params[ndx] = new SpecVar((String)objParams[ndx]);
    }
   
/*      try {
      checkTypes(rel, params, method);
    } catch (ParseException e) {
      // TODO Put out a real error message
      e.printStackTrace();
    }
*/     
    edu.cmu.cs.fusion.annot.Relation.Effect actualEffect;
   
    if (actEffectPair != null) {
      String strEffect = ((String)actEffectPair.getValue()).substring(((String)actEffectPair.getValue()).lastIndexOf('.') + 1); //SCREW YOU ECLIPSE!!!!!
      actualEffect = edu.cmu.cs.fusion.annot.Relation.Effect.valueOf(strEffect);
    }
    else
      actualEffect = edu.cmu.cs.fusion.annot.Relation.Effect.ADD;
   
    String test = null;
   
    switch (actualEffect) {
    case ADD:
      effect = RelEffect.createAddEffect(rel, params);
      break;
    case REMOVE:
      effect = RelEffect.createRemoveEffect(rel, params);
      break;
    case TEST:
      test = (String) testPair.getValue();
      effect = RelEffect.createTestEffect(rel, params, new SpecVar(test));
      break;
    }
    return effect;
  }
View Full Code Here

    return null;
  }

  public static Object getAnnotationValue(IMemberValuePair[] valuePairs, String name, int kind) {
    for (int i = 0; valuePairs != null && i < valuePairs.length; i++) {
      IMemberValuePair valuePair = valuePairs[i];
      if (valuePair.getValueKind() == kind && name.equals(valuePair.getMemberName())) {
        return valuePair.getValue();
      }
    }
    return null;
  }
View Full Code Here

TOP

Related Classes of org.eclipse.jdt.core.IMemberValuePair

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.