test_class.file: dddlib-utils/src/test/java/org/dayatang/utils/ArrayUtilsTest.java
test_class.identifier: ArrayUtilsTest
test_case.body: @Test(expected = IllegalArgumentException.class)
      public void testPropertyNotExists() {
          Item[] items = {
              new Item(1, "A"),
              new Item(2, "B"),
              new Item(1, "C")
          };
          ArrayUtils.substract(items, "birthday");
      }
test_case.class_method_signature: ArrayUtilsTest.testPropertyNotExists()
test_case.full_signature: @Test(expected = IllegalArgumentException.class) public void testPropertyNotExists()
test_case.identifier: testPropertyNotExists
test_case.invocations: substract
test_case.modifiers: @Test(expected = IllegalArgumentException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testPropertyNotExists()
focal_class.file: dddlib-utils/src/main/java/org/dayatang/utils/ArrayUtils.java
focal_class.identifier: ArrayUtils
focal_class.class_method_signature: ArrayUtils.ArrayUtils()
focal_class.full_signature: private  ArrayUtils()
focal_class.identifier: ArrayUtils
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  ArrayUtils()
focal_class.class_method_signature: ArrayUtils.substract(Object[] items, String property)
focal_class.full_signature: public static Object[] substract(Object[] items, String property)
focal_class.identifier: substract
focal_class.modifiers: public static
focal_class.parameters: (Object[] items, String property)
focal_class.return: Object[]
focal_class.signature: Object[] substract(Object[] items, String property)
focal_class.class_method_signature: ArrayUtils.join(Object[] items, String property, String separator)
focal_class.full_signature: public static String join(Object[] items, String property, String separator)
focal_class.identifier: join
focal_class.modifiers: public static
focal_class.parameters: (Object[] items, String property, String separator)
focal_class.return: String
focal_class.signature: String join(Object[] items, String property, String separator)
focal_method.body: public static Object[] substract(Object[] items, String property) {
          Assert.notNull(items);
          Assert.notBlank(property, "property name must not empty!");
          if (items.length == 0) {
              return new Object[0];
          }
          Object[] results = new Object[items.length];
          for (int i = 0; i < items.length; i++) {
              Object item = items[i];
              Map<String, Object> propValues = new BeanUtils(item).getPropValues();
              if (!propValues.containsKey(property)) {
                  throw new IllegalArgumentException("Property " + property + " not exists!");
              }
              results[i] = propValues.get(property);
          }
          return results;
      }
focal_method.class_method_signature: ArrayUtils.substract(Object[] items, String property)
focal_method.full_signature: public static Object[] substract(Object[] items, String property)
focal_method.identifier: substract
focal_method.invocations: notNull notBlank getPropValues containsKey get
focal_method.modifiers: public static
focal_method.parameters: (Object[] items, String property)
focal_method.return: Object[]
focal_method.signature: Object[] substract(Object[] items, String property)