### Question:
SizePropertyDefinition extends PropertyDefinition<Long> { @Override public <R, P> R accept(PropertyDefinitionVisitor<R, P> v, P p) { return v.visitSize(this, p); } private  SizePropertyDefinition(
      AbstractManagedObjectDefinition<?, ?> d, String propertyName,
      EnumSet<PropertyOption> options,
      AdministratorAction adminAction,
      DefaultBehaviorProvider<Long> defaultBehavior, Long lowerLimit,
      Long upperLimit, boolean allowUnlimited); static Builder createBuilder(
      AbstractManagedObjectDefinition<?, ?> d, String propertyName); long getLowerLimit(); Long getUpperLimit(); boolean isAllowUnlimited(); @Override void validateValue(Long value); @Override String encodeValue(Long value); @Override Long decodeValue(String value); @Override R accept(PropertyDefinitionVisitor<R, P> v, P p); @Override R accept(PropertyValueVisitor<R, P> v, Long value, P p); @Override void toString(StringBuilder builder); @Override int compare(Long o1, Long o2);  }### Answer:
@Test public void testAccept() { SizePropertyDefinition.Builder builder = createTestBuilder(); builder.setAllowUnlimited(true); SizePropertyDefinition spd = buildTestDefinition(builder); PropertyDefinitionVisitor<Boolean, Void> v = new PropertyDefinitionVisitor<Boolean, Void>() { @Override public Boolean visitSize(SizePropertyDefinition d, Void o) { return true; } @Override public Boolean visitUnknown(PropertyDefinition d, Void o) throws PropertyException { return false; } }; assertEquals((boolean) spd.accept(v, null), true); }