Example usage for org.apache.commons.lang3.reflect FieldUtils readField

List of usage examples for org.apache.commons.lang3.reflect FieldUtils readField

Introduction

In this page you can find the example usage for org.apache.commons.lang3.reflect FieldUtils readField.

Prototype

public static Object readField(final Object target, final String fieldName, final boolean forceAccess)
        throws IllegalAccessException 

Source Link

Document

Reads the named Field .

Usage

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);
    }
}