Esempio n. 1
0
 public Calculation(final C[] catagories, final Operation... operations) {
   if (catagories == null) {
     throw new NullPointerException("categories.not.specified");
   }
   if (operations == null || operations.length == 0) {
     throw new NullPointerException("operations.not.specified");
   }
   this.catagories = Arrays.copyOf(catagories, catagories.length);
   for (final Operation operation : operations) {
     this.operations[operation.ordinal()] = operation;
   }
   if (this.operations[Operation.SUM.ordinal()] != null
       || this.operations[Operation.AVERAGE.ordinal()] != null) {
     sum = new BigDecimal[catagories.length];
     final BigDecimal zero = new BigDecimal(0);
     for (int i = 0; i < catagories.length; i++) {
       sum[i] = zero;
     }
   }
   if (this.operations[Operation.AVERAGE.ordinal()] != null) {
     count = new long[catagories.length];
   }
   if (this.operations[Operation.MEDIAN.ordinal()] != null) {
     values = new List[catagories.length];
     for (int i = 0; i < catagories.length; i++) {
       values[i] = new ArrayList<BigDecimal>();
     }
   }
 }
 public AttributeModifier build() {
   AttributeModifier modifier =
       new AttributeModifier(
           UUID.nameUUIDFromBytes(name.getBytes(StandardCharsets.US_ASCII)),
           name,
           value,
           operation.ordinal());
   modifier.setSaved(isSaved);
   return modifier;
 }