You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by mb...@apache.org on 2018/02/25 20:10:42 UTC
[7/8] bval git commit: remove obsolete modules,
moving required core code to jsr
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java b/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java
deleted file mode 100644
index bd7464b..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.io.Serializable;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-/**
- * Description: abstract superclass of meta objects that support a map of
- * features.<br/>
- */
-public abstract class FeaturesCapable implements Serializable {
- private static final long serialVersionUID = -4045110242904814218L;
-
- private ConcurrentMap<String, Object> features = createFeaturesMap();
-
- /** key = validation id, value = the validation */
- private Validation[] validations = new Validation[0];
-
- /**
- * Create a new FeaturesCapable instance.
- */
- public FeaturesCapable() {
- super();
- }
-
- /**
- * Get the (live) map of features.
- *
- * @return Map<String, Object>
- */
- public Map<String, Object> getFeatures() {
- return features;
- }
-
- /**
- * Get the specified feature.
- *
- * @param <T>
- * @param key
- * @return T
- */
- public <T> T getFeature(String key) {
- return getFeature(key, (T) null);
- }
-
- /**
- * Get the specified feature, returning <code>defaultValue</code> if
- * undeclared.
- *
- * @param <T>
- * @param key
- * @param defaultValue
- * @return T
- */
- @SuppressWarnings("unchecked")
- public <T> T getFeature(String key, T defaultValue) {
- final T value = (T) features.get(key);
- if (value == null) {
- return defaultValue;
- }
- return value;
- }
-
- /**
- * Convenience method to set a particular feature value.
- *
- * @param key
- * @param value
- */
- public <T> void putFeature(final String key, final T value) {
- features.put(key, value);
- }
-
- public <T> T initFeature(final String key, final T value) {
- @SuppressWarnings("unchecked")
- final T faster = (T) features.putIfAbsent(key, value);
- return faster == null ? value : faster;
- }
-
- /**
- * Create a deep copy (copy receiver and copy properties).
- *
- * @param <T>
- * @return new T instance
- */
- public <T extends FeaturesCapable> T copy() {
- try {
- @SuppressWarnings("unchecked")
- final T self = (T) clone();
- copyInto(self);
- return self;
- } catch (CloneNotSupportedException e) {
- throw new IllegalStateException("cannot clone() " + this, e);
- }
- }
-
- /**
- * Copy this {@link FeaturesCapable} into another {@link FeaturesCapable}
- * instance.
- *
- * @param target
- */
- protected void copyInto(FeaturesCapable target) {
- target.features = target.createFeaturesMap();
- target.features.putAll(features);
- target.validations = validations != null ? validations.clone() : null;
- }
-
- /**
- * Get any validations set for this {@link FeaturesCapable}.
- *
- * @return Validation array
- */
- public Validation[] getValidations() {
- return validations != null ? validations.clone() : null;
- }
-
- /**
- * Set the validations for this {@link FeaturesCapable}.
- *
- * @param validations
- */
- public void setValidations(Validation[] validations) {
- this.validations = validations != null ? validations.clone() : null;
- }
-
- /**
- * Add a validation to this {@link FeaturesCapable}.
- *
- * @param validation
- * to add
- */
- public void addValidation(Validation validation) {
- if (this.validations == null) {
- this.validations = new Validation[] { validation };
- } else {
- Validation[] newValidations = new Validation[this.validations.length + 1];
- System.arraycopy(this.validations, 0, newValidations, 0, this.validations.length);
- newValidations[validations.length] = validation;
- this.validations = newValidations;
- }
- }
-
- /**
- * Search for an equivalent validation among those configured.
- *
- * @param aValidation
- * @return true if found
- */
- public boolean hasValidation(Validation aValidation) {
- if (validations == null) {
- return false;
- }
- for (Validation validation : validations) {
- if (validation.equals(aValidation)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Create a features map for this {@link FeaturesCapable} object.
- * @return ConcurrentMap
- */
- protected ConcurrentMap<String, Object> createFeaturesMap() {
- return new ConcurrentHashMap<String, Object>();
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/Meta.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/Meta.java b/bval-core/src/main/java/org/apache/bval/model/Meta.java
deleted file mode 100644
index e539b1d..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/Meta.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.bval.model;
-
-public abstract class Meta extends FeaturesCapable {
- private static final long serialVersionUID = 1L;
-
- protected MetaBean parentMetaBean;
-
- public MetaBean getParentMetaBean() {
- return parentMetaBean;
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java b/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java
deleted file mode 100755
index e2ab2f9..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.lang.annotation.Annotation;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.bval.util.ObjectUtils;
-
-public abstract class MetaAnnotated extends Meta {
- private static final long serialVersionUID = 1L;
-
- private Set<Annotation> annotations = new HashSet<Annotation>();
- private Annotation[] annArray = null;
-
- public Annotation[] getAnnotations() {
- if (annArray == null) {
- annArray = annotations.isEmpty() ? ObjectUtils.EMPTY_ANNOTATION_ARRAY
- : annotations.toArray(new Annotation[annotations.size()]);
- }
- return annArray;
- }
-
- public void addAnnotation(final Annotation annotation) {
- this.annotations.add(annotation);
- annArray = null;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/MetaBean.java b/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
deleted file mode 100644
index 9738f23..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.beans.Introspector;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.apache.bval.util.reflection.Reflection;
-import org.apache.commons.weaver.privilizer.Privilizing;
-import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
-
-/**
- * Description: the meta description of a bean or class. the class/bean itself can have a map of features and an array
- * of metaproperties.<br/>
- *
- * @see MetaProperty
- */
-@Privilizing(@CallTo(Reflection.class))
-public class MetaBean extends FeaturesCapable implements Cloneable, Features.Bean {
- private static final long serialVersionUID = 2L;
-
- private String id;
- private String name;
- private Class<?> beanClass;
-
- private Map<String, MetaProperty> properties = null;
- private Map<Method, MetaMethod> methods = null;
- private Map<Constructor<?>, MetaConstructor> constructors = null;
-
- /**
- * Get the id.
- *
- * @return String
- */
- public String getId() {
- return id;
- }
-
- /**
- * Set the id.
- *
- * @param id
- * the String to set
- */
- public void setId(String id) {
- this.id = id;
- }
-
- /**
- * Get the name.
- *
- * @return String
- */
- public String getName() {
- return name;
- }
-
- /**
- * Set the name.
- *
- * @param name
- * the String to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Get the beanClass.
- *
- * @return Class
- */
- public Class<?> getBeanClass() {
- return beanClass;
- }
-
- /**
- * Set the beanClass.
- *
- * @param beanClass
- * the Class<?> to set
- */
- public void setBeanClass(Class<?> beanClass) {
- this.beanClass = beanClass;
- if (beanClass != null) {
- // order of fields to ensure correct failling order
- final Map<String, MetaProperty> oldProperties = properties;
- final Map<Method, MetaMethod> oldMethods = methods;
- final Map<Constructor<?>, MetaConstructor> oldConstructors = constructors;
-
- properties = new TreeMap<String, MetaProperty>(new FieldComparator(beanClass));
- if (oldProperties != null) {
- properties.putAll(oldProperties);
- }
- methods = new TreeMap<Method, MetaMethod>(new MethodComparator(beanClass));
- if (oldMethods != null) {
- methods.putAll(oldMethods);
- }
- constructors = new TreeMap<Constructor<?>, MetaConstructor>(new ConstructorComparator(beanClass));
- if (oldConstructors != null) {
- constructors.putAll(oldConstructors);
- }
- }
- }
-
- /**
- * Get the properties.
- *
- * @return MetaProperty[]
- */
- public MetaProperty[] getProperties() {
- if (properties == null) {
- return new MetaProperty[0];
- }
- return properties.values().toArray(new MetaProperty[this.properties.size()]);
- }
-
- public MetaMethod[] getMethods() {
- if (methods == null) {
- return new MetaMethod[0];
- }
- return methods.values().toArray(new MetaMethod[this.methods.size()]);
- }
-
- public void addMethod(final Method method, final MetaMethod meta) {
- if (methods == null) {
- methods = new HashMap<Method, MetaMethod>();
- }
- methods.put(method, meta);
- }
-
- public void addConstructor(final Constructor<?> constructor, final MetaConstructor meta) {
- if (constructors == null) {
- constructors = new HashMap<Constructor<?>, MetaConstructor>();
- }
- constructors.put(constructor, meta);
- }
-
- /**
- * Set the properties.
- *
- * @param properties
- * the MetaProperty[] to set
- */
- public void setProperties(MetaProperty[] properties) {
- this.properties = new HashMap<String, MetaProperty>();
- for (final MetaProperty property : properties) {
- this.properties.put(property.getName(), property);
- }
- }
-
- /**
- * Get the specified {@link MetaProperty}.
- *
- * @param name property name
- * @return MetaProperty found or <code>null</code>
- */
- public MetaProperty getProperty(String name) {
- if (properties == null) {
- return null;
- }
- return this.properties.get(name);
- }
-
- /**
- * Learn whether any known property is a relationship.
- *
- * @see MetaProperty#isRelationship()
- * @return true when at least one of the properties is a relationship
- */
- public boolean hasRelationships() {
- if (properties == null) {
- return false;
- }
- for (MetaProperty property : this.properties.values()) {
- if (property.isRelationship()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * bidirectional - set the relationship between a MetaProperty and its parentMetaBean
- *
- * @param name property name
- * @param property
- * if <code>null</code>, remove
- */
- public void putProperty(String name, MetaProperty property) {
- if (properties == null) {
- properties = new HashMap<String, MetaProperty>();
- }
- if (property == null) {
- this.properties.remove(name);
- } else {
- property.setParentMetaBean(this);
- this.properties.put(name, property);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return "MetaBean{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", beanClass=" + beanClass + '}';
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void copyInto(FeaturesCapable target) {
- super.copyInto(target);
- final MetaBean copy = (MetaBean) target;
- if (properties != null) {
- copy.properties = new TreeMap<String, MetaProperty>();
- for (Map.Entry<String, MetaProperty> entry : properties.entrySet()) {
- copy.properties.put(entry.getKey(), (MetaProperty) entry.getValue().copy());
- }
- }
- }
-
- /**
- * <p>
- * If this {@link MetaBean} is compatible with <code>bean</code>, return <code>this</code>, else <code>null</code>.
- * </p>
- * <p>
- * Compatibility is satisfied in one of the following ways:
- * <ul>
- * <li><code>bean</code> is null</li>
- * <li><code>bean</code> is an instance of our <code>beanClass</code></li>
- * <li><code>bean</code> <em>is</em> our <code>beanClass</code> itself</li>
- * </ul>
- * </p>
- *
- * @param bean instance
- * @return <code>this</code> or <code>null</code>
- */
- public MetaBean resolveMetaBean(Object bean) {
- return bean == null || bean == beanClass || beanClass.isInstance(bean) ? this : null;
- }
-
- public MetaMethod getMethod(final Method method) {
- return methods == null ? null : methods.get(method);
- }
-
- public MetaConstructor getConstructor(final Constructor<?> constructor) {
- return constructors == null ? null : constructors.get(constructor);
- }
-
- protected static class FieldComparator implements Comparator<String> {
- private final Map<String, Integer> fields = new HashMap<String, Integer>();
-
- protected FieldComparator(final Class<?> beanClass) {
- int i = 0;
- Class<?> clazz = beanClass;
- while (clazz != null && clazz != Object.class) {
- for (final Field f : Reflection.getDeclaredFields(clazz)) {
- final String name = f.getName();
- if (!fields.containsKey(name)) {
- fields.put(name, Integer.valueOf(++i));
- }
- }
- for (final Method m : clazz.getDeclaredMethods()) {
- final String name = getPropertyName(m);
- if (name != null && !name.isEmpty()) {
- if (!fields.containsKey(name)) {
- fields.put(name, Integer.valueOf(++i));
- }
- }
- }
- clazz = clazz.getSuperclass();
- }
- }
-
- private String getPropertyName(Method potentialAccessor) {
- if (potentialAccessor.getParameterTypes().length == 0) {
- final String name = potentialAccessor.getName();
- if (Boolean.TYPE.equals(potentialAccessor.getReturnType())
- && potentialAccessor.getName().startsWith("is")) {
- return Introspector.decapitalize(name.substring(2));
- }
- if (!Void.TYPE.equals(potentialAccessor.getReturnType())
- && potentialAccessor.getName().startsWith("get")) {
- return Introspector.decapitalize(name.substring(3));
- }
- }
- return null;
- }
-
- @Override
- public int compare(final String o1, final String o2) {
- final Integer i1 = fields.get(o1);
- final Integer i2 = fields.get(o2);
- if (i1 == null) {
- if (i2 == null) {
- // java.util.TreeMap requires that the comparator be consistent with #equals(),
- // therefore we must not incorrectly report 0 comparison for different property names
- // Both o1 and o2 cannot be null as they would have blown up with a NPE in fields.get already
- return o1.compareTo(o2);
- }
- return -1;
- }
- if (i2 == null) {
- return 1;
- }
- return i1.intValue() - i2.intValue();
- }
-
- }
-
- protected static class MethodComparator implements Comparator<Method> {
- private final Map<Method, Integer> methods = new HashMap<Method, Integer>();
-
- protected MethodComparator(final Class<?> beanClass) {
- Class<?> clazz = beanClass;
- while (clazz != null && clazz != Object.class) {
- for (final Method m : Reflection.getDeclaredMethods(clazz)) {
- methods.put(m, Arrays.hashCode(m.getParameterTypes()));
- }
- clazz = clazz.getSuperclass();
- }
- }
-
- @Override
- public int compare(final Method o1, final Method o2) {
- if (o1 == o2) {
- return 0;
- }
-
- final int i = o1.getName().compareTo(o2.getName());
- return i == 0 ? methods.get(o1) - methods.get(o2) : i;
- }
- }
-
- protected static class ConstructorComparator implements Comparator<Constructor<?>> {
- private final Map<Constructor<?>, Integer> constructors = new HashMap<Constructor<?>, Integer>();
-
- protected ConstructorComparator(final Class<?> beanClass) {
- for (final Constructor<?> c : Reflection.getDeclaredConstructors(beanClass)) {
- constructors.put(c, Arrays.hashCode(c.getParameterTypes()));
- }
- }
-
- @Override
- public int compare(final Constructor<?> o1, final Constructor<?> o2) {
- if (o1 == o2) {
- return 0;
- }
-
- final int i = o1.getName().compareTo(o2.getName());
- return i == 0 ? constructors.get(o1) - constructors.get(o2) : i;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/MetaConstructor.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/MetaConstructor.java b/bval-core/src/main/java/org/apache/bval/model/MetaConstructor.java
deleted file mode 100644
index 4a6436b..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/MetaConstructor.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.lang.reflect.Constructor;
-
-public class MetaConstructor extends MetaInvocable {
- private static final long serialVersionUID = 1L;
-
- private final Constructor<?> constructor;
-
- public MetaConstructor(final MetaBean metabean, final Constructor<?> constructor) {
- this.parentMetaBean = metabean;
- this.constructor = constructor;
- }
-
- public Constructor<?> getConstructor() {
- return constructor;
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java b/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java
deleted file mode 100644
index b5fd8ab..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-public abstract class MetaInvocable extends MetaAnnotated {
- private static final long serialVersionUID = 1L;
-
- private Map<Integer, MetaParameter> parameters = new HashMap<Integer, MetaParameter>();
-
- public Collection<MetaParameter> getParameters() {
- return new ArrayList<MetaParameter>(parameters.values());
- }
-
- public void addParameter(final int idx, final MetaParameter param) {
- parameters.put(idx, param);
- }
-
- public MetaParameter getParameter(final Integer index) {
- return parameters.get(index);
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/MetaMethod.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/MetaMethod.java b/bval-core/src/main/java/org/apache/bval/model/MetaMethod.java
deleted file mode 100644
index 952dc5c..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/MetaMethod.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.lang.reflect.Method;
-
-public class MetaMethod extends MetaInvocable {
- private static final long serialVersionUID = 1L;
-
- private final Method method;
-
- public MetaMethod(final MetaBean parent, final Method method) {
- this.parentMetaBean = parent;
- this.method = method;
- }
-
- public Method getMethod() {
- return method;
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/MetaParameter.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/MetaParameter.java b/bval-core/src/main/java/org/apache/bval/model/MetaParameter.java
deleted file mode 100644
index f46ef16..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/MetaParameter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-public class MetaParameter extends MetaAnnotated {
- private static final long serialVersionUID = 1L;
-
- private final MetaInvocable invocable;
- private final Integer index;
-
- public MetaParameter(final MetaInvocable metaMethod, final Integer index) {
- this.invocable = metaMethod;
- this.index = index;
- }
-
- public MetaInvocable getMethod() {
- return invocable;
- }
-
- public Integer getIndex() {
- return index;
- }
-
- @Override
- public MetaBean getParentMetaBean() {
- return invocable.getParentMetaBean();
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java b/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java
deleted file mode 100644
index 690416f..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.lang.reflect.Type;
-
-import org.apache.bval.util.reflection.TypeUtils;
-
-/**
- * Description: the meta description of a property of a bean. It supports a map
- * of features and multiple validations.<br/>
- *
- * @see Validation
- * @see MetaBean
- */
-public class MetaProperty extends Meta implements Cloneable, Features.Property {
- private static final long serialVersionUID = 1L;
-
- private String name;
-
- private Type type;
- private MetaBean metaBean;
-
- /**
- * Create a new MetaProperty instance.
- */
- public MetaProperty() {
- }
-
- /**
- * Get the metabean of the target bean (mainly for relationships).
- * @return MetaBean (may be null).
- */
- public MetaBean getMetaBean() {
- return metaBean;
- }
-
- /**
- * Set the MetaBean of this {@link MetaProperty}.
- * @param metaBean to set
- */
- public void setMetaBean(MetaBean metaBean) {
- this.metaBean = metaBean;
- }
-
- /**
- * Set the metabean that owns this property (usually called by MetaBean.putProperty())
- * @param parentMetaBean
- */
- void setParentMetaBean(MetaBean parentMetaBean) {
- this.parentMetaBean = parentMetaBean;
- }
-
- /**
- * Learn whether this property is considered a relationship.
- * @return <code>true</code> if it has a MetaBean of its own
- */
- public boolean isRelationship() {
- return metaBean != null;
- }
-
- /**
- * Set the type of this property.
- * @param type to set
- */
- public void setType(Type type) {
- this.type = type;
- }
-
- /**
- * Get the type of this property.
- * @return
- */
- public Type getType() {
- return type;
- }
-
- /**
- * Resolve the type of this property to a class.
- * @return Class, <code>null</code> if cannot be determined
- */
- public Class<?> getTypeClass() {
- Type targetType = type instanceof DynaType ? ((DynaType) type).getRawType() : type;
- if (targetType == null) {
- return null;
- }
- Type assigningType = getParentMetaBean() == null ? null : getParentMetaBean().getBeanClass();
- return TypeUtils.getRawType(targetType, assigningType);
- }
-
- /**
- * Get the name of this property.
- * @return String
- */
- public String getName() {
- return name;
- }
-
- /**
- * Learn whether this property is considered mandatory.
- * @return <code>true</code> if the <code>MANDATORY</code> feature is set to <code>true</code>.
- * @see {@link Features.Property#MANDATORY}
- */
- public boolean isMandatory() {
- return getFeature(MANDATORY, Boolean.FALSE).booleanValue();
- }
-
- /**
- * Set this property as being mandatory (or not).
- * @param mandatory
- * @see {@link Features.Property#MANDATORY}
- */
- public void setMandatory(boolean mandatory) {
- putFeature(MANDATORY, Boolean.valueOf(mandatory));
- }
-
- /**
- * Get javascript validations of this property.
- * @return String[]
- * @deprecated
- */
- @Deprecated // remove this method?
- public String[] getJavaScriptValidations() {
- return getFeature(JAVASCRIPT_VALIDATION_FUNCTIONS);
- }
-
- /**
- * Set the name of this property.
- * @param name to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public MetaProperty clone() throws CloneNotSupportedException {
- return (MetaProperty) super.clone();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return "MetaProperty{" + "name='" + name + '\'' + ", type=" + type + '}';
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/Validation.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/Validation.java b/bval-core/src/main/java/org/apache/bval/model/Validation.java
deleted file mode 100644
index a81e731..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/Validation.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-/**
- * Description: Interface for a single validation <br/>
- */
-public interface Validation {
- /**
- * Perform a single validation routine.
- * Validate the object or property according to the current ValidationContext.
- *
- * @param context - to access the property, value, constraints
- */
- <T extends ValidationListener> void validate(ValidationContext<T> context);
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/ValidationContext.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/ValidationContext.java b/bval-core/src/main/java/org/apache/bval/model/ValidationContext.java
deleted file mode 100644
index c26d2b7..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/ValidationContext.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import org.apache.bval.util.AccessStrategy;
-
-/**
- * Description: Interface of the context that holds all state information
- * during the validation process<br/>
- */
-public interface ValidationContext<T extends ValidationListener> {
- /**
- * Get the property value.
- * @return {@link Object}
- */
- Object getPropertyValue();
-
- /**
- * Get the value by using the given access strategy.
- * @param access
- * @return {@link Object}
- */
- Object getPropertyValue(AccessStrategy access);
-
- /**
- * Get the property name.
- * @return {@link String}
- */
- String getPropertyName();
-
- /**
- * Get the {@link ValidationListener}.
- * @return T
- */
- T getListener();
-
- /**
- * Get the bean.
- * @return {@link Object}
- */
- Object getBean();
-
- /**
- * Get the model meta-bean.
- * @return {@link MetaBean}
- */
- MetaBean getMetaBean();
-
- /**
- * Set the model meta-bean.
- * @param metaBean
- */
- void setMetaBean(MetaBean metaBean);
-
- /**
- * Get the model meta-property.
- * @return {@link MetaProperty}
- */
- MetaProperty getMetaProperty();
-
- /**
- * Set the bean.
- * @param bean
- */
- void setBean(Object bean);
-
- /**
- * Avoid recursion by recording the current state of this context as having been validated.
- * <p/>
- *
- * @return true when this state had not already been recorded
- */
- boolean collectValidated();
-
- /**
- * Set the current bean/metabean.
- * @param aBean
- * @param aMetaBean
- */
- void setBean(Object aBean, MetaBean aMetaBean);
-
- /**
- * Set the current meta-property.
- * @param metaProperty
- */
- void setMetaProperty(MetaProperty metaProperty);
-
- /**
- * Step deeper into association at 'prop'
- * @param prop
- * @param access
- */
- void moveDown(MetaProperty prop, AccessStrategy access);
-
- void moveDown(String prop);
-
- /**
- * Step out from a validation of associated objects.
- * @param bean
- * @param metaBean
- */
- void moveUp(Object bean, MetaBean metaBean);
-
- /**
- * Set the index of the object currently validated into the context.
- * used to create the propertyPath with [index] information for collections.
- * @param index
- */
- void setCurrentIndex(Integer index);
-
- /**
- * set the key of the object in a map currently validated into the context.
- * used to create the propertyPath with [key] information for maps.
- * @param key
- */
- void setCurrentKey(Object key);
-
- /**
- * Get the current access strategy.
- * @return {@link AccessStrategy}
- */
- AccessStrategy getAccess();
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/model/ValidationListener.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/model/ValidationListener.java b/bval-core/src/main/java/org/apache/bval/model/ValidationListener.java
deleted file mode 100644
index 76e4fab..0000000
--- a/bval-core/src/main/java/org/apache/bval/model/ValidationListener.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.model;
-
-import java.io.Serializable;
-
-/**
- * Description: The interface to collect errors found during validation<br/>
- */
-public interface ValidationListener {
- /**
- * Simple API to add an error reason during validation.
- * Error notification added from a {@link org.apache.bval.model.Validation} with context information
- * taken from the given {@link org.apache.bval.model.ValidationContext}.
- *
- * @param reason a constant describing the reason. This is normally the key of the
- * feature that was violated in the object 'owner' for property 'propertyName'
- * @param context - contains
- * bean = the object that contains the error (owner)
- * propertyName = the Name of the attribute that caused the error
- */
- <T extends ValidationListener> void addError(String reason, ValidationContext<T> context);
-
- /** Alternative method to add a fully initialized {@link ValidationListener.Error} object. */
- <T extends ValidationListener> void addError(Error error, ValidationContext<T> context);
-
- /**
- * An object holding a single validation constraint violation
- * found during the validation process.
- */
- public class Error implements Serializable {
- private static final long serialVersionUID = 1L;
-
- /** Reason */
- final String reason;
- /** Owner */
- final Object owner;
- /** Property name*/
- final String propertyName;
-
- /**
- * Create a new Error instance.
- * @param aReason
- * @param aOwner
- * @param aPropertyName
- */
- public Error(String aReason, Object aOwner, String aPropertyName) {
- this.reason = aReason;
- this.owner = aOwner;
- this.propertyName = aPropertyName;
- }
-
- /**
- * Get the reason.
- * @return String
- */
- public String getReason() {
- return reason;
- }
-
- /**
- * Get the owner.
- * @return Object
- */
- public Object getOwner() {
- return owner;
- }
-
- /**
- * Get the propertyName.
- * @return String
- */
- public String getPropertyName() {
- return propertyName;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return "Error{" + "reason='" + reason + '\'' + ", propertyName='" + propertyName + '\'' + '}';
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java b/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java
deleted file mode 100644
index 0835bae..0000000
--- a/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.routines;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Description: holds the regexp to validate an email address<br>
- * User: roman.stumm<br>
- * Date: 17.06.2010<br>
- * Time: 10:40:59<br>
- */
-public class EMailValidationUtils {
- private static String ATOM = "[^\\x00-\\x1F\\(\\)\\<\\>\\@\\,\\;\\:\\\\\\\"\\.\\[\\]\\s]";
- private static String DOMAIN = "(" + ATOM + "+(\\." + ATOM + "+)*";
- private static String IP_DOMAIN = "\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\]";
- public static final Pattern DEFAULT_EMAIL_PATTERN;
-
- static {
- DEFAULT_EMAIL_PATTERN = Pattern.compile("^" + ATOM + "+(\\." + ATOM + "+)*@" + DOMAIN + "|" + IP_DOMAIN + ")$",
- Pattern.CASE_INSENSITIVE);
- }
-
- /**
- * Learn whether a given object is a valid email address.
- *
- * @param value
- * to check
- * @return <code>true</code> if the validation passes
- */
- public static boolean isValid(Object value) {
- return isValid(value, DEFAULT_EMAIL_PATTERN);
- }
-
- /**
- * Learn whether a particular value matches a given pattern per
- * {@link Matcher#matches()}.
- *
- * @param value
- * @param aPattern
- * @return <code>true</code> if <code>value</code> was a <code>String</code>
- * matching <code>aPattern</code>
- */
- // TODO it would seem to make sense to move or reduce the visibility of this
- // method as it is more general than email.
- public static boolean isValid(Object value, Pattern aPattern) {
- if (value == null) {
- return true;
- }
- if (!(value instanceof CharSequence)) {
- return false;
- }
- CharSequence seq = (CharSequence) value;
- if (seq.length() == 0) {
- return true;
- }
- return aPattern.matcher(seq).matches();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java b/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java
deleted file mode 100644
index 5118a26..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.lang.annotation.ElementType;
-import java.lang.reflect.Type;
-
-/**
- * Description: abstract class to encapsulate different strategies
- * to get the value of a Property. This class is designed such that
- * subclasses are intended to know internally to which property they refer,
- * with only the particular target instance being externally required
- * to calculate the property's value. One intent of this design is
- * that the notion of the very definition of a property is abstracted
- * along with the mechanism for accessing that property.<br/>
- */
-public abstract class AccessStrategy {
- /**
- * Get the value from the given instance.
- * @param instance
- * @return the value
- * @throws IllegalArgumentException in case of an error
- */
- public abstract Object get(Object instance);
-
- /**
- * Get the Java program {@link ElementType} used by this {@link AccessStrategy}
- * to determine property values.
- * @return ElementType
- */
- public abstract ElementType getElementType();
-
- /**
- * Get the type of the property
- * @return Type
- */
- public abstract Type getJavaType();
-
- /**
- * Get a name representative of this property.
- * @return String
- */
- public abstract String getPropertyName();
-
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/BValVersion.java b/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
deleted file mode 100644
index 13d1fa3..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.bval.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import org.apache.bval.util.reflection.Reflection;
-import org.apache.commons.weaver.privilizer.Privilizing;
-import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
-
-/**
- * This class contains version information for BVal.
- * It uses Ant's filter tokens to convert the template into a java
- * file with current information.
- */
-@Privilizing(@CallTo(Reflection.class))
-public class BValVersion {
-
- /** Project name */
- public static final String PROJECT_NAME = "Apache BVal";
- /** Unique id of the current project/version/revision */
- public static final String PROJECT_ID;
- /** Version number */
- public static final String VERSION_NUMBER;
- /** Major release number */
- public static final int MAJOR_RELEASE;
- /** Minor release number */
- public static final int MINOR_RELEASE;
- /** Patch/point release number */
- public static final int PATCH_RELEASE;
- /** Release status */
- public static final String RELEASE_STATUS;
- /** Version control revision number */
- public static final String REVISION_NUMBER;
-
- static {
- Properties revisionProps = new Properties();
- try (InputStream in = BValVersion.class.getResourceAsStream("/META-INF/org.apache.bval.revision.properties")) {
- if (in != null) {
- revisionProps.load(in);
- }
- } catch (IOException ioe) {
- }
-
- String vers = revisionProps.getProperty("project.version");
- if (vers == null || "".equals(vers.trim())) {
- vers = "0.0.0";
- }
- VERSION_NUMBER = vers;
-
- StringTokenizer tok = new StringTokenizer(VERSION_NUMBER, ".-");
- int major, minor, patch;
- try {
- major = tok.hasMoreTokens() ? Integer.parseInt(tok.nextToken()) : 0;
- } catch (Exception e) {
- major = 0;
- }
-
- try {
- minor = tok.hasMoreTokens() ? Integer.parseInt(tok.nextToken()) : 0;
- } catch (Exception e) {
- minor = 0;
- }
-
- try {
- patch = tok.hasMoreTokens() ? Integer.parseInt(tok.nextToken()) : 0;
- } catch (Exception e) {
- patch = 0;
- }
-
- String revision = revisionProps.getProperty("svn.revision");
- if (StringUtils.isBlank(revision)) {
- revision = "unknown";
- } else {
- tok = new StringTokenizer(revision, ":");
- String strTok = null;
- while (tok.hasMoreTokens()) {
- try {
- strTok = tok.nextToken();
- } catch (Exception e) {
- }
- }
- if (strTok != null) {
- revision = strTok;
- }
- }
-
- MAJOR_RELEASE = major;
- MINOR_RELEASE = minor;
- PATCH_RELEASE = patch;
- RELEASE_STATUS = tok.hasMoreTokens() ? tok.nextToken("!") : "";
- REVISION_NUMBER = revision;
- PROJECT_ID = PROJECT_NAME + " " + VERSION_NUMBER + "-r" + REVISION_NUMBER;
- }
-
- /**
- * Get the project version number.
- * @return String
- */
- public static String getVersion() {
- return VERSION_NUMBER;
- }
-
- /**
- * Get the version control revision number.
- * @return String
- */
- public static String getRevision() {
- return REVISION_NUMBER;
- }
-
- /**
- * Get the project name.
- * @return String
- */
- public static String getName() {
- return PROJECT_NAME;
- }
-
- /**
- * Get the fully-qualified project id.
- * @return String
- */
- public static String getID() {
- return PROJECT_ID;
- }
-
- /**
- * Main method of this class that prints the {@link #toString()} to <code>System.out</code>.
- * @param args ignored
- */
- public static void main(String[] args) {
- System.out.println(new BValVersion().toString());
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- final StringBuilder buf = new StringBuilder(80 * 40);
- appendBanner(buf);
- buf.append("\n");
-
- appendProperty("os.name", buf).append("\n");
- appendProperty("os.version", buf).append("\n");
- appendProperty("os.arch", buf).append("\n\n");
-
- appendProperty("java.version", buf).append("\n");
- appendProperty("java.vendor", buf).append("\n\n");
-
- buf.append("java.class.path:\n");
- final StringTokenizer tok = new StringTokenizer(Reflection.getProperty("java.class.path"));
- while (tok.hasMoreTokens()) {
- buf.append("\t").append(tok.nextToken());
- buf.append("\n");
- }
- buf.append("\n");
-
- appendProperty("user.dir", buf).append("\n");
- return buf.toString();
- }
-
- private void appendBanner(StringBuilder buf) {
- buf.append("Project").append(": ").append(getName());
- buf.append("\n");
- buf.append("Version").append(": ").append(getVersion());
- buf.append("\n");
- buf.append("Revision").append(": ").append(getRevision());
- buf.append("\n");
- }
-
- private StringBuilder appendProperty(String prop, StringBuilder buf) {
- return buf.append(prop).append(": ").append(Reflection.getProperty(prop));
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/BeanUtilsPropertyAccess.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/BeanUtilsPropertyAccess.java b/bval-core/src/main/java/org/apache/bval/util/BeanUtilsPropertyAccess.java
deleted file mode 100755
index c189e72..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/BeanUtilsPropertyAccess.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.commons.beanutils.DynaBean;
-import org.apache.commons.beanutils.PropertyUtils;
-
-/**
- * Commons BeanUtils-specific {@link PropertyAccess} subclass.
- *
- * @since 1.1.2
- */
-class BeanUtilsPropertyAccess extends PropertyAccess {
-
- public BeanUtilsPropertyAccess(Class<?> clazz, String propertyName) {
- super(clazz, propertyName);
- }
-
- @Override
- protected Object getPublicProperty(Object bean)
- throws InvocationTargetException, NoSuchMethodException, IllegalAccessException {
- if (bean instanceof DynaBean) {
- return PropertyUtils.getSimpleProperty(bean, getPropertyName());
- }
- return super.getPublicProperty(bean);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/Exceptions.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/Exceptions.java b/bval-core/src/main/java/org/apache/bval/util/Exceptions.java
deleted file mode 100644
index 9487cde..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/Exceptions.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.util.function.BiFunction;
-import java.util.function.Function;
-import java.util.function.Supplier;
-import java.util.stream.Stream;
-
-/**
- * Utility class for the creation and throwing of Exceptions.
- */
-public class Exceptions {
-
- public static <E extends Exception> E create(Function<? super String, ? extends E> fn, String format,
- Object... args) {
- return create(fn, () -> String.format(format, args));
- }
-
- public static <E extends Exception, C extends Throwable> E create(
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, String format, Object... args) {
- return create(fn, cause, () -> String.format(format, args));
- }
-
- public static <E extends Exception> E create(Function<? super String, ? extends E> fn, Supplier<String> message) {
- return elideStackTrace(fn.apply(message.get()));
- }
-
- public static <E extends Exception, C extends Throwable> E create(
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, Supplier<String> message) {
- return elideStackTrace(fn.apply(message.get(), cause));
- }
-
- public static <E extends Exception, R> R raise(Function<? super String, ? extends E> fn, String format,
- Object... args) throws E {
- throw create(fn, format, args);
- }
-
- public static <E extends Exception> void raiseIf(boolean condition, Function<? super String, ? extends E> fn,
- String format, Object... args) throws E {
- if (condition) {
- raise(fn, format, args);
- }
- }
-
- public static <E extends Exception> void raiseUnless(boolean condition, Function<? super String, ? extends E> fn,
- String format, Object... args) throws E {
- raiseIf(!condition, fn, format, args);
- }
-
- public static <E extends Exception, R> R raise(Function<? super String, ? extends E> fn, Supplier<String> message)
- throws E {
- throw create(fn, message);
- }
-
- public static <E extends Exception> void raiseIf(boolean condition, Function<? super String, ? extends E> fn,
- Supplier<String> message) throws E {
- if (condition) {
- raise(fn, message);
- }
- }
-
- public static <E extends Exception> void raiseUnless(boolean condition, Function<? super String, ? extends E> fn,
- Supplier<String> message) throws E {
- raiseIf(!condition, fn, message);
- }
-
- public static <E extends Exception, C extends Throwable, R> R raise(
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, String format, Object... args) throws E {
- throw create(fn, cause, format, args);
- }
-
- public static <E extends Exception, C extends Throwable> void raiseIf(boolean condition,
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, String format, Object... args) throws E {
- if (condition) {
- raise(fn, cause, format, args);
- }
- }
-
- public static <E extends Exception, C extends Throwable> void raiseUnless(boolean condition,
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, String format, Object... args) throws E {
- raiseIf(!condition, fn, cause, format, args);
- }
-
- public static <E extends Exception, C extends Throwable, R> R raise(
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, Supplier<String> message) throws E {
- throw create(fn, cause, message);
- }
-
- public static <E extends Exception, C extends Throwable> void raiseIf(boolean condition,
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, Supplier<String> message) throws E {
- if (condition) {
- raise(fn, cause, message);
- }
- }
-
- public static <E extends Exception, C extends Throwable> void raiseUnless(boolean condition,
- BiFunction<? super String, ? super C, ? extends E> fn, C cause, Supplier<String> message) throws E {
- raiseIf(!condition, fn, cause, message);
- }
-
- private static <T extends Throwable> T elideStackTrace(T t) {
- final StackTraceElement[] stackTrace = t.fillInStackTrace().getStackTrace();
- t.setStackTrace(Stream.of(stackTrace).filter(e -> !Exceptions.class.getName().equals(e.getClassName()))
- .toArray(StackTraceElement[]::new));
- return t;
- }
-
- private Exceptions() {
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java b/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
deleted file mode 100644
index 720d1db..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.lang.annotation.ElementType;
-import java.lang.reflect.Field;
-import java.lang.reflect.Type;
-
-import org.apache.bval.util.reflection.Reflection;
-import org.apache.commons.weaver.privilizer.Privilizing;
-import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
-
-/**
- * Description: direct field access strategy.<br/>
- */
-@Privilizing(@CallTo(Reflection.class))
-public class FieldAccess extends AccessStrategy {
-
- private final Field field;
-
- /**
- * Create a new FieldAccess instance.
- * @param field
- */
- public FieldAccess(final Field field) {
- this.field = field;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Object get(final Object instance) {
- final boolean mustUnset = Reflection.setAccessible(field, true);
- try {
- return field.get(instance);
- } catch (IllegalAccessException e) {
- throw new IllegalArgumentException(e);
- } finally {
- if (mustUnset) {
- Reflection.setAccessible(field, false);
- }
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ElementType getElementType() {
- return ElementType.FIELD;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Type getJavaType() {
- return field.getGenericType();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String getPropertyName() {
- return field.getName();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return field.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- FieldAccess that = (FieldAccess) o;
-
- return field.equals(that.field);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int hashCode() {
- return field.hashCode();
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java b/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
deleted file mode 100644
index ab6a937..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.lang.annotation.ElementType;
-import java.lang.reflect.Array;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.bval.util.reflection.TypeUtils;
-
-/**
- * {@link AccessStrategy} to get an indexed member of an {@link Iterable} or
- * array object.
- */
-public class IndexedAccess extends AccessStrategy {
- private static final TypeVariable<?> ITERABLE_TYPE = Iterable.class.getTypeParameters()[0];
-
- /**
- * Get the Java element type of a particular container type.
- *
- * @param containerType
- * @return Type or <code>null</code> if <code>containerType</code> is not
- * some type of {@link Iterable} or array
- */
- public static Type getJavaElementType(Type containerType) {
- if (TypeUtils.isArrayType(containerType)) {
- return TypeUtils.getArrayComponentType(containerType);
- }
- if (TypeUtils.isAssignable(containerType, Iterable.class)) {
- Map<TypeVariable<?>, Type> typeArguments = TypeUtils.getTypeArguments(containerType, Iterable.class);
- Type type = TypeUtils.unrollVariables(typeArguments, ITERABLE_TYPE);
- return type != null ? type : Object.class;
- }
- return null;
- }
-
- private final Type containerType;
- private final Integer index;
-
- /**
- * Create a new IndexedAccessStrategy instance.
- *
- * @param containerType
- * @param index
- */
- public IndexedAccess(Type containerType, Integer index) {
- super();
- this.containerType = containerType;
- this.index = index;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Object get(Object instance) {
- if (index == null) {
- throw new UnsupportedOperationException("Cannot read null index");
- }
- if (instance != null && instance.getClass().isArray()) {
- if (Array.getLength(instance) - index > 0) {
- return Array.get(instance, index);
- }
- } else if (instance instanceof List<?>) {
- List<?> list = (List<?>) instance;
- if (list.size() - index > 0) {
- return list.get(index);
- }
- } else if (instance instanceof Iterable<?>) {
- int i = 0;
- for (Object o : (Iterable<?>) instance) {
- if (++i == index) {
- return o;
- }
- }
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ElementType getElementType() {
- return ElementType.METHOD;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Type getJavaType() {
- return getJavaElementType(containerType);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String getPropertyName() {
- return String.format("[%d]", index);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java b/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
deleted file mode 100644
index 700287d..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import org.apache.bval.util.reflection.TypeUtils;
-
-import java.lang.annotation.ElementType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.util.Map;
-
-/**
- * {@link AccessStrategy} to get a keyed value from a {@link Map}. Contains
- * special handling when a string key is used against a container type whose key
- * parameter is not assignable from {@link String}: against a map whose key type
- * is an enum class, it will be interpreted as a named enum constant; other key
- * types will be compared via {@link Object#toString()}.
- */
-public class KeyedAccess extends AccessStrategy {
- private static final TypeVariable<?>[] MAP_TYPEVARS = Map.class.getTypeParameters();
-
- /**
- * Get the Java element type of a particular container type.
- *
- * @param containerType
- * @return Type or <code>null</code> if <code>containerType</code> is not
- * some kind of {@link Map}
- */
- public static Type getJavaElementType(Type containerType) {
- if (TypeUtils.isAssignable(containerType, Map.class)) {
- Map<TypeVariable<?>, Type> typeArguments = TypeUtils.getTypeArguments(containerType, Map.class);
- return ObjectUtils.defaultIfNull(TypeUtils.unrollVariables(typeArguments, MAP_TYPEVARS[1]), Object.class);
- }
- return null;
- }
-
- private final Type containerType;
- private final Object key;
-
- /**
- * Create a new KeyedAccess instance.
- *
- * @param containerType
- * @param key
- */
- public KeyedAccess(Type containerType, Object key) {
- super();
- this.containerType = containerType;
- this.key = key;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Object get(Object instance) {
- if (instance instanceof Map<?, ?>) {
- Map<?, ?> map = (Map<?, ?>) instance;
- Map<TypeVariable<?>, Type> typeArguments = TypeUtils.getTypeArguments(containerType, Map.class);
- Type keyType = TypeUtils.unrollVariables(typeArguments, MAP_TYPEVARS[0]);
- if (key == null || keyType == null || TypeUtils.isInstance(key, keyType)) {
- return map.get(key);
- }
- if (key instanceof String) {
- String name = (String) key;
- Class<?> rawKeyType = TypeUtils.getRawType(keyType, containerType);
- if (rawKeyType.isEnum()) {
- @SuppressWarnings({ "unchecked", "rawtypes" })
- final Object result = map.get(Enum.valueOf((Class<? extends Enum>) rawKeyType, name));
- return result;
- }
- for (Map.Entry<?, ?> e : map.entrySet()) {
- if (name.equals(e.getKey())) {
- return e.getValue();
- }
- }
- }
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ElementType getElementType() {
- return ElementType.METHOD;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Type getJavaType() {
- final Type result = getJavaElementType(containerType);
- return result == null ? Object.class : result;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String getPropertyName() {
- return String.format("[%s]", key);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/Lazy.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/Lazy.java b/bval-core/src/main/java/org/apache/bval/util/Lazy.java
deleted file mode 100644
index 4796de3..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/Lazy.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.util.Optional;
-import java.util.function.BiConsumer;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-
-/**
- * @since 2.0
- *
- * @param <T>
- */
-public class Lazy<T> implements Supplier<T> {
- private T value;
- private volatile Supplier<T> init;
-
- public Lazy(Supplier<T> init) {
- reset(init);
- }
-
- public Lazy<T> reset(Supplier<T> init) {
- this.init = Validate.notNull(init);
- return this;
- }
-
- @Override
- public T get() {
- if (init != null) {
- synchronized (this) {
- if (init != null) {
- value = init.get();
- init = null;
- }
- }
- }
- return value;
- }
-
- public Optional<T> optional() {
- return Optional.ofNullable(value);
- }
-
- public <U> Consumer<U> consumer(BiConsumer<? super T, ? super U> delegate) {
- return u -> delegate.accept(get(), u);
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/LazyInt.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/LazyInt.java b/bval-core/src/main/java/org/apache/bval/util/LazyInt.java
deleted file mode 100644
index b866226..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/LazyInt.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.util.OptionalInt;
-import java.util.function.IntSupplier;
-
-/**
- * @since 2.0
- */
-public class LazyInt implements IntSupplier {
- private int value;
- private volatile IntSupplier init;
-
- public LazyInt(IntSupplier init) {
- this.init = Validate.notNull(init);
- }
-
- @Override
- public int getAsInt() {
- if (init != null) {
- synchronized (this) {
- if (init != null) {
- value = init.getAsInt();
- init = null;
- }
- }
- }
- return value;
- }
-
- public synchronized OptionalInt optional() {
- return init == null ? OptionalInt.of(value) : OptionalInt.empty();
- }
-}
http://git-wip-us.apache.org/repos/asf/bval/blob/ed299e4f/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
----------------------------------------------------------------------
diff --git a/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java b/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
deleted file mode 100644
index 298272e..0000000
--- a/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.bval.util;
-
-import java.beans.Introspector;
-import java.lang.annotation.ElementType;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-
-import org.apache.bval.util.reflection.Reflection;
-import org.apache.commons.weaver.privilizer.Privilizing;
-import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
-
-/**
- * Description: invoke a zero-argument method (getter)<br/>
- */
-@Privilizing(@CallTo(Reflection.class))
-public class MethodAccess extends AccessStrategy {
- private final Method method;
- private final String propertyName;
-
- /**
- * Create a new MethodAccess instance.
- * @param method
- */
- public MethodAccess(Method method) {
- this(getPropertyName(method), method);
- }
-
- /**
- * Create a new MethodAccess instance.
- * @param propertyName
- * @param method
- */
- public MethodAccess(String propertyName, final Method method) {
- this.method = method;
- this.propertyName = propertyName;
- }
-
- /**
- * Process bean properties getter by applying the JavaBean naming conventions.
- *
- * @param member the member for which to get the property name.
- * @return The bean method name with the "is" or "get" prefix stripped off, <code>null</code>
- * the method name id not according to the JavaBeans standard.
- */
- public static String getPropertyName(Method member) {
- final String methodName = member.getName();
- if (methodName.startsWith("is")) {
- return Introspector.decapitalize(methodName.substring(2));
- }
- if (methodName.startsWith("get")) {
- return Introspector.decapitalize(methodName.substring(3));
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- * normally the propertyName of the getter method, e.g.<br>
- * method: getName() -> propertyName: name<br>
- * method: isValid() -> propertyName: valid<br>
- */
- @Override
- public String getPropertyName() {
- return propertyName;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Object get(final Object instance) {
- final boolean mustUnset = Reflection.setAccessible(method, true);
- try {
- return method.invoke(instance);
- } catch (IllegalAccessException e) {
- throw new IllegalArgumentException(e);
- } catch (InvocationTargetException e) {
- throw new IllegalArgumentException(e);
- } finally {
- if (mustUnset) {
- Reflection.setAccessible(method, false);
- }
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ElementType getElementType() {
- return ElementType.METHOD;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Type getJavaType() {
- return method.getGenericReturnType();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return method.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- MethodAccess that = (MethodAccess) o;
-
- return method.equals(that.method);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int hashCode() {
- return method.hashCode();
- }
-}