@Override public ObjectProperty addProperty( String name, String className, boolean multiple, String bag, Visibility visibility, boolean isStatic, boolean isFinal ) { ObjectProperty property = new ObjectPropertyImpl( name, className, multiple, bag, visibility, isStatic, isFinal ); return addProperty( property ); }
@Override public boolean isArray() { //TODO check this when array support will be added return getClassName() != null && className.endsWith("[]"); }
public int compare( ObjectProperty o1, ObjectProperty o2 ) { if ( o1 == null && o2 == null ) { return 0; } if ( o1 == null && o2 != null ) { return -1; } if ( o1 != null && o2 == null ) { return 1; } Comparable key1 = null; Comparable key2 = null; int ikey1 = ( ( ObjectPropertyImpl ) o1 ).getFileOrder(); int ikey2 = ( ( ObjectPropertyImpl ) o2 ).getFileOrder(); key1 = ikey1 >= 0 ? ikey1 : null; key2 = ikey2 >= 0 ? ikey2 : null; if ( key1 == null && key2 == null ) { return 0; } if ( key1 != null && key2 != null ) { return key1.compareTo( key2 ); } if ( key1 == null && key2 != null ) { return -1; } //if (key1 != null && key2 == null) return 1; return 1; } } );
@Override public void setMultiple(boolean multiple) { this.multiple = multiple; if (!multiple) { setBag(null); } }
ObjectPropertyImpl objectProperty = (ObjectPropertyImpl) dataObject.getProperty(field.getName()); if (objectProperty != null) { objectProperty.setFileOrder(fileOrder);
@Override public ObjectProperty addProperty( String name, String className, boolean multiple, Visibility visibility, boolean isStatic, boolean isFinal ) { return addProperty( new ObjectPropertyImpl( name, className, multiple, visibility, isStatic, isFinal ) ); }
@Override public boolean isPrimitiveType() { return NamingUtils.isPrimitiveTypeClass(getClassName()); }
public ObjectProperty addProperty( DataObject dataObject, String name, String className, boolean baseType, boolean multiple, String bag ) { // TODO set modifiers. ObjectProperty property = new ObjectPropertyImpl( name, className, multiple,bag, Visibility.PUBLIC, false, false ); dataObject.addProperty( property ); return property; }
@Override public boolean isBaseType() { return PropertyTypeFactoryImpl.getInstance().isBasePropertyType(getClassName()); }
@Test public void validateIsNotAPlanningScore() { DataObject dataObject = new DataObjectImpl("test", "PlainDataObject"); ObjectProperty objectProperty = new ObjectPropertyImpl("notAPlanningScore", Integer.class.getName(), false); Collection<ValidationMessage> result = deleteValidator.validate(dataObject, objectProperty); assertEquals(0, result.size()); }
@Test public void safeObjectPropertyDeleteEmptyValidationMessages() { DataObjectBrowser dataObjectBrowser = createBrowser(); DataObjectImpl dataObject = new DataObjectImpl("test", "DataObject"); dataObjectBrowser.setDataObject(dataObject); ObjectProperty objectProperty = new ObjectPropertyImpl("safeField", Integer.class.getName(), false); when(dataObjectValidationService.validateObjectPropertyDeletion(dataObject, objectProperty)).thenReturn(Collections.emptyList()); dataObjectBrowser.onDeleteProperty(objectProperty, 0); verify(view, never()).showValidationPopupForDeletion(anyListOf(ValidationMessage.class), any(Command.class), any(Command.class)); }
@Test public void validateObjectPropertyDeletion() { Collection<ValidationMessage> result = validationService.validateObjectPropertyDeletion(new DataObjectImpl(), new ObjectPropertyImpl()); assertEquals(2, result.size()); assertTrue(result.contains(message1)); assertTrue(result.contains(message2)); } }
@Test public void safeObjectPropertyDeleteHasValidationMessages() { DataObjectBrowser dataObjectBrowser = createBrowser(); DataObjectImpl dataObject = new DataObjectImpl("test", "DataObject"); dataObjectBrowser.setDataObject(dataObject); ObjectProperty objectProperty = new ObjectPropertyImpl("safeField", Integer.class.getName(), false); List<ValidationMessage> validationMessages = Arrays.asList(new ValidationMessage()); when(dataObjectValidationService.validateObjectPropertyDeletion(dataObject, objectProperty)).thenReturn(validationMessages); dataObjectBrowser.onDeleteProperty(objectProperty, 0); verify(view, times(1)).showValidationPopupForDeletion(anyListOf(ValidationMessage.class), any(Command.class), any(Command.class) ); } }
@Test public void execute() { DataObject dataObject = new DataObjectImpl("org.test", "TestDataObject"); dataObject.addProperty(new ObjectPropertyImpl("testProperty", Integer.class.getName(), false)); DataModelChangeNotifier notifier = mock(DataModelChangeNotifier.class); RemovePropertyCommand command = new RemovePropertyCommand(new DataModelerContext(), "source", dataObject, "testProperty", notifier); command.execute(); assertNull(dataObject.getProperty("testProperty")); verify(notifier, times(1)).notifyChange(any(DataObjectFieldDeletedEvent.class)); } }
ObjectProperty matchingObjectProperty = new ObjectPropertyImpl("testField", "className", false); imageWrapperList.size()); ObjectProperty nonMatchingObjectProperty = new ObjectPropertyImpl("nonMatchingTestField", "className", false);
ObjectProperty expectedProperty = new ObjectPropertyImpl("field4", "java.lang.String", false);
@Test public void validateIsAPlanningScore() { DataObject dataObject = new DataObjectImpl("test", "PlanningSolution"); dataObject.addAnnotation(new AnnotationImpl(DriverUtils.buildAnnotationDefinition(PlanningSolution.class))); ObjectProperty objectProperty = new ObjectPropertyImpl("score", HardSoftScore.class.getName(), false); objectProperty.addAnnotation(new AnnotationImpl(DriverUtils.buildAnnotationDefinition(PlanningScore.class))); objectProperty.addAnnotation(new AnnotationImpl(DriverUtils.buildAnnotationDefinition(Generated.class))); Collection<ValidationMessage> result = deleteValidator.validate(dataObject, objectProperty); assertEquals(1, result.size()); assertTrue(result.iterator().next() instanceof PlanningScoreToBeDeletedMessage); }
ObjectProperty property = new ObjectPropertyImpl(fieldName, fieldType, isMultiple);
property = new ObjectPropertyImpl(field.getName(), className, multiple,
} else { logger.debug("field: " + field + "with fieldName: " + field.getName() + " won't be loaded by the diver because type: " + field.getType().getName() + " isn't a managed type."); unmanagedProperties.add(new ObjectPropertyImpl(field.getName(), field.getType().toString(), false,