Пример #1
0
 @Override
 public Group build(Object[] arguments) {
   AcademicOperationType operation = null;
   Set<AcademicProgram> programs = new HashSet<AcademicProgram>();
   Set<AdministrativeOffice> offices = new HashSet<AdministrativeOffice>();
   Scope scope = null;
   for (int i = 0; i < arguments.length; i++) {
     Object argument = arguments[i];
     if (argument instanceof String) {
       try {
         scope = Scope.valueOf((String) argument);
       } catch (IllegalArgumentException e) {
         operation = (AcademicOperationType.valueOf((String) argument));
       }
     } else if (argument instanceof AcademicProgram) {
       programs.add((AcademicProgram) argument);
     } else if (argument instanceof AdministrativeOffice) {
       offices.add((AdministrativeOffice) argument);
     } else {
       throw new WrongTypeOfArgumentException(
           i, AcademicOperationType.class, arguments[i].getClass());
     }
   }
   return new AcademicAuthorizationGroup(operation, programs, offices, scope);
 }
Пример #2
0
  @Override
  protected Argument[] getExpressionArguments() {
    List<Argument> arguments = new ArrayList<Argument>();
    if (scope != null) {
      arguments.add(new StaticArgument(scope.name()));
    }

    if (operation != null) {
      arguments.add(new StaticArgument(operation.name()));
    }

    for (AcademicProgram program : programs) {
      arguments.add(new OidOperator(program));
    }
    for (AdministrativeOffice office : offices) {
      arguments.add(new OidOperator(office));
    }
    return arguments.toArray(new Argument[0]);
  }