private void cataloguePropertiesAndCollections(final Map<Method, ObjectMember> membersByMethod) {
   final Filter<ObjectAssociation> noop = Filters.anyOfType(ObjectAssociation.class);
   final List<ObjectAssociation> fields = getAssociations(noop);
   for (int i = 0; i < fields.size(); i++) {
     final ObjectAssociation field = fields.get(i);
     final List<Facet> facets = field.getFacets(ImperativeFacet.FILTER);
     for (final Facet facet : facets) {
       final ImperativeFacet imperativeFacet = ImperativeFacetUtils.getImperativeFacet(facet);
       for (final Method imperativeFacetMethod : imperativeFacet.getMethods()) {
         membersByMethod.put(imperativeFacetMethod, field);
       }
     }
   }
 }
Beispiel #2
0
 public static Intent getIntent(final ObjectMember member, final Method method) {
   final List<Facet> allFacets = member.getFacets(Filters.anyOfType(Facet.class));
   final List<ImperativeFacet> imperativeFacets = Lists.newArrayList();
   for (final Facet facet : allFacets) {
     final ImperativeFacet imperativeFacet = ImperativeFacet.Util.getImperativeFacet(facet);
     if (imperativeFacet == null) {
       continue;
     }
     final List<Method> methods = imperativeFacet.getMethods();
     if (!methods.contains(method)) {
       continue;
     }
     imperativeFacets.add(imperativeFacet);
   }
   switch (imperativeFacets.size()) {
     case 0:
       break;
     case 1:
       return imperativeFacets.get(0).getIntent(method);
     default:
       Intent intentToReturn = null;
       for (ImperativeFacet imperativeFacet : imperativeFacets) {
         Intent intent = imperativeFacet.getIntent(method);
         if (intentToReturn == null) {
           intentToReturn = intent;
         } else if (intentToReturn != intent) {
           throw new IllegalArgumentException(
               member.getIdentifier().toClassAndNameIdentityString()
                   + ": more than one ImperativeFacet for method "
                   + method.getName()
                   + " , with inconsistent intents: "
                   + imperativeFacets.toString());
         }
       }
       return intentToReturn;
   }
   throw new IllegalArgumentException(
       member.getIdentifier().toClassAndNameIdentityString()
           + ": unable to determine intent of "
           + method.getName());
 }