code: private ArrayList<AptControlInterfaceProperty> initIntfProperties() {
  
          HashMap<String, AptControlInterfaceProperty> intfPropMap = new HashMap<String, AptControlInterfaceProperty>();
  
          Collection<AptOperation> ops = getOperations();
          for (AptOperation op : ops) {
              String opName = op.getName();
              if (!op.isPublic()) {
                  continue;
              }
  
              if (isGetter(op)) {
                  String propertyName = getIntfPropertyName(op);
                  if (intfPropMap.containsKey(propertyName)) {
                      intfPropMap.get(propertyName).setGetterName(opName);
                  }
                  else {
                      intfPropMap.put(propertyName, new AptControlInterfaceProperty(propertyName, opName, null));
                  }
              }
              else if (isSetter(op)) {
                  String propertyName = getIntfPropertyName(op);
                  if (intfPropMap.containsKey(propertyName)) {
                      intfPropMap.get(propertyName).setSetterName(opName);
                  }
                  else {
                      intfPropMap.put(propertyName, new AptControlInterfaceProperty(propertyName, null, opName));
                  }
              }
              else if (isIsGetter(op)) {
                  String propertyName = getIntfPropertyName(op);
                  if (intfPropMap.containsKey(propertyName)) {
                      intfPropMap.get(propertyName).setGetterName(opName);
                  }
                  else {
                      intfPropMap.put(propertyName, new AptControlInterfaceProperty(propertyName, opName, null));
                  }
              }
          }
          return new ArrayList<AptControlInterfaceProperty>(intfPropMap.values());
      }
docs: Build a list of properties defined by getter/setter methods on this control interface.