private void addOperations(Set<ClassOrInterfaceType> concreteClassTypes,VisibilityPredicate visibility,ReflectionPredicate reflectionPredicate){
  Set<TypedOperation> operationSet=new LinkedHashSet<>();
  ReflectionManager mgr=new ReflectionManager(visibility);
  for (  ClassOrInterfaceType classType : concreteClassTypes) {
    mgr.apply(new OperationExtractor(classType,operationSet,reflectionPredicate),classType.getRuntimeClass());
  }
  for (  TypedOperation operation : operationSet) {
    operations.add(operation);
  }
}

private void addOperations ( Set < ClassOrInterfaceType > concreteClassTypes , VisibilityPredicate visibility , ReflectionPredicate reflectionPredicate ) { Set < TypedOperation > operationSet = new LinkedHashSet < > ( ) ; ReflectionManager mgr = new ReflectionManager ( visibility ) ; for ( ClassOrInterfaceType classType : concreteClassTypes ) { mgr . apply ( new OperationExtractor ( classType , operationSet , reflectionPredicate ) , classType . getRuntimeClass ( ) ) ; } for ( TypedOperation operation : operationSet ) { operations . add ( operation ) ; } }
iterates through a set of simple and instantiated class types and uses reflection to extract the operations that satisfy both the visibility and reflection predicates , and then adds them to the operation set of this model .
