List of usage examples for org.apache.commons.lang3.reflect FieldUtils readField
public static Object readField(final Object target, final String fieldName, final boolean forceAccess) throws IllegalAccessException
From source file:org.broadleafcommerce.common.web.resource.BroadleafResourceHttpRequestHandler.java
/** * @return a clone of the locations list that is in {@link ResourceHttpRequestHandler}. Note that we must use * reflection to access this field as it is marked private. *///from www .j a va 2 s . c o m @SuppressWarnings("unchecked") public List<Resource> getLocations() { try { List<Resource> locations = (List<Resource>) FieldUtils.readField(this, "locations", true); return new ArrayList<Resource>(locations); } catch (IllegalAccessException e) { throw new RuntimeException(e); } }
From source file:org.egov.infra.persistence.validator.CompareDatesValidator.java
@Override public boolean isValid(Object target, ConstraintValidatorContext validatorContext) { try {/*from ww w . ja va 2 s . co m*/ Date fromDate = (Date) FieldUtils.readField(target, compareDates.fromDate(), true); Date toDate = (Date) FieldUtils.readField(target, compareDates.toDate(), true); boolean isValid = fromDate != null && toDate != null && fromDate.before(toDate); if (!isValid) validatorContext.buildConstraintViolationWithTemplate(compareDates.message()) .addPropertyNode(compareDates.toDate()).addConstraintViolation(); return isValid; } catch (IllegalAccessException e) { throw new ApplicationRuntimeException("Could not compare dates", e); } }
From source file:org.egov.infra.persistence.validator.CompositeUniqueCheckValidator.java
@Override public boolean isValid(final Object arg0, final ConstraintValidatorContext constraintValidatorContext) { try {/*from w w w . ja v a2 s . c o m*/ final Number id = (Number) FieldUtils.readField(arg0, unique.id(), true); final boolean isValid = checkCompositeUniqueKey(arg0, id); if (!isValid && unique.enableDfltMsg()) for (final String fieldName : unique.fields()) constraintValidatorContext.buildConstraintViolationWithTemplate(unique.message()) .addPropertyNode(fieldName).addConstraintViolation(); return isValid; } catch (final IllegalAccessException e) { throw new ApplicationRuntimeException("Error while validating composite unique key", e); } }
From source file:org.egov.infra.persistence.validator.CompositeUniqueCheckValidator.java
private boolean checkCompositeUniqueKey(final Object arg0, final Number id) throws IllegalAccessException { final Criteria criteria = entityManager.unwrap(Session.class) .createCriteria(unique.isSuperclass() ? arg0.getClass().getSuperclass() : arg0.getClass()) .setReadOnly(true);//from w w w . j ava 2 s .c o m final Conjunction conjunction = Restrictions.conjunction(); for (final String fieldName : unique.fields()) { final Object fieldValue = FieldUtils.readField(arg0, fieldName, true); if (unique.checkForNull() && fieldValue == null) conjunction.add(Restrictions.isNull(fieldName)); else if (fieldValue instanceof String) conjunction.add(Restrictions.eq(fieldName, fieldValue).ignoreCase()); else conjunction.add(Restrictions.eq(fieldName, fieldValue)); } if (id != null) conjunction.add(Restrictions.ne(unique.id(), id)); return criteria.add(conjunction).setProjection(Projections.id()).setMaxResults(1).uniqueResult() == null; }
From source file:org.egov.infra.persistence.validator.UniqueCheckValidator.java
@Override public boolean isValid(final Object arg0, final ConstraintValidatorContext constraintValidatorContext) { try {//from w w w . j a v a2 s . c o m final Number id = (Number) FieldUtils.readField(arg0, unique.id(), true); boolean isValid = true; for (final String fieldName : unique.fields()) if (!checkUnique(arg0, id, fieldName)) { isValid = false; if (unique.enableDfltMsg()) constraintValidatorContext.buildConstraintViolationWithTemplate(unique.message()) .addPropertyNode(fieldName).addConstraintViolation(); } return isValid; } catch (final IllegalAccessException e) { throw new ApplicationRuntimeException("Error while validating unique key", e); } }
From source file:org.egov.infra.persistence.validator.UniqueCheckValidator.java
private boolean checkUnique(final Object arg0, final Number id, final String fieldName) throws IllegalAccessException { final Criteria criteria = entityManager.unwrap(Session.class) .createCriteria(unique.isSuperclass() ? arg0.getClass().getSuperclass() : arg0.getClass()) .setReadOnly(true);//from ww w. j a v a 2 s . c o m final Object fieldValue = FieldUtils.readField(arg0, fieldName, true); if (fieldValue instanceof String) criteria.add(Restrictions.eq(fieldName, fieldValue).ignoreCase()); else criteria.add(Restrictions.eq(fieldName, fieldValue)); if (id != null) criteria.add(Restrictions.ne(unique.id(), id)); return criteria.setProjection(Projections.id()).setMaxResults(1).uniqueResult() == null; }
From source file:org.egov.infra.persistence.validator.UniqueDateOverlapValidator.java
private boolean checkUnique(Object object) throws IllegalAccessException { Number id = (Number) FieldUtils.readField(object, uniqueDateOverlap.id(), true); Criteria uniqueDateOverlapChecker = entityManager.unwrap(Session.class).createCriteria(object.getClass()) .setReadOnly(true);/*from ww w . ja v a 2s . c o m*/ Conjunction uniqueCheck = Restrictions.conjunction(); for (String fieldName : uniqueDateOverlap.uniqueFields()) { Object fieldValue = FieldUtils.readField(object, fieldName, true); if (fieldValue instanceof String) uniqueCheck.add(Restrictions.eq(fieldName, fieldValue).ignoreCase()); else uniqueCheck.add(Restrictions.eq(fieldName, fieldValue)); } Date fromDate = startOfDay((Date) FieldUtils.readField(object, uniqueDateOverlap.fromField(), true)); Date toDate = endOfDay((Date) FieldUtils.readField(object, uniqueDateOverlap.toField(), true)); Conjunction checkFromDate = Restrictions.conjunction(); checkFromDate.add(Restrictions.le(uniqueDateOverlap.fromField(), fromDate)); checkFromDate.add(Restrictions.ge(uniqueDateOverlap.toField(), fromDate)); Conjunction checkToDate = Restrictions.conjunction(); checkToDate.add(Restrictions.le(uniqueDateOverlap.fromField(), toDate)); checkToDate.add(Restrictions.ge(uniqueDateOverlap.toField(), toDate)); Conjunction checkFromAndToDate = Restrictions.conjunction(); checkFromAndToDate.add(Restrictions.ge(uniqueDateOverlap.fromField(), fromDate)); checkFromAndToDate.add(Restrictions.le(uniqueDateOverlap.toField(), toDate)); Disjunction dateRangeChecker = Restrictions.disjunction(); dateRangeChecker.add(checkFromDate).add(checkToDate).add(checkFromAndToDate); uniqueCheck.add(dateRangeChecker); if (id != null) uniqueCheck.add(Restrictions.ne(uniqueDateOverlap.id(), id)); return uniqueDateOverlapChecker.add(uniqueCheck).setProjection(Projections.id()).setMaxResults(1) .uniqueResult() == null; }
From source file:org.force66.beantester.utils.InstantiationUtilsTest.java
@Test public void testInstantiationWithFactory() throws Exception { ValueGeneratorFactory factory = new ValueGeneratorFactory(); try {//w w w.ja v a 2 s . c om InstantiationUtils.safeNewInstance(factory, Math.class); Assert.fail(); } catch (Exception e) { Assert.assertTrue(e.getMessage().contains("No public constructor found")); Assert.assertTrue(e.getMessage().contains(Math.class.getName())); } try { InstantiationUtils.safeNewInstance(factory, TestBean.class); Assert.fail(); } catch (Exception e) { Assert.assertTrue(e.getMessage().contains("No public constructor found")); Assert.assertTrue(e.getMessage().contains(TestField.class.getName())); } Map<Class<?>, ValueGenerator<?>> registeredGeneratorMap = (Map<Class<?>, ValueGenerator<?>>) FieldUtils .readField(factory, "registeredGeneratorMap", true); registeredGeneratorMap.put(String.class, null); InstantiationUtils.safeNewInstance(factory, TestBean2.class); }
From source file:org.force66.beantester.valuegens.InterfaceValueGeneratorTest.java
@Test public void testBasic() throws Exception { try {/*from w w w. j a va 2 s. co m*/ generator = new InterfaceValueGenerator(null); Assert.fail(); } catch (Exception e) { Assert.assertTrue(e.getMessage() != null); Assert.assertTrue(e.getMessage().contains("Null interface type not allowed")); } try { generator = new InterfaceValueGenerator(String.class); Assert.fail(); } catch (Exception e) { Assert.assertTrue(e.getMessage() != null); Assert.assertTrue(e.getMessage().contains("class=java.lang.String")); } generator = new InterfaceValueGenerator(Statement.class); Assert.assertTrue(Statement.class.equals(FieldUtils.readField(generator, "interfaceType", true))); Object[] values = generator.makeValues(); Assert.assertTrue(values != null); Assert.assertTrue(values.length == 1); Assert.assertTrue(values[0] instanceof Statement); }
From source file:org.force66.cxfutils.reflect.ReflectUtils.java
protected static Object readField(final Field field, final Object target) { try {/* w w w. j ava 2 s .c o m*/ return FieldUtils.readField(field, target, true); } catch (Exception e) { throw new ContextedRuntimeException("Error reading field", e).addContextValue("field", field) .addContextValue("object", target); } }