You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2015/05/29 11:27:51 UTC
svn commit: r1682403 - in /sling/trunk/bundles/extensions/models:
api/src/main/java/org/apache/sling/models/spi/
impl/src/main/java/org/apache/sling/models/impl/
impl/src/main/java/org/apache/sling/models/impl/injectors/
Author: kwin
Date: Fri May 29 09:27:50 2015
New Revision: 1682403
URL: http://svn.apache.org/r1682403
Log:
SLING-4737 add missing JSR 305 annotations
Modified:
sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/spi/Injector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
Modified: sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/spi/Injector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/spi/Injector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/spi/Injector.java (original)
+++ sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/spi/Injector.java Fri May 29 09:27:50 2015
@@ -38,7 +38,7 @@ public interface Injector {
* Produce a value for an injection point.
*
* @param adaptable the object which should be used as the basis for value resolution.
- * @param name the injection point name
+ * @param name the injection point name (may be only {@code null} if injector implements the {@link AcceptsNullName} interface, otherwise never {@code null})
* @param declaredType the declared type of the injection point
* @param element the injection point itself
* @param callbackRegistry a registry object to register a callback object which will be
@@ -46,5 +46,5 @@ public interface Injector {
*
* @return the value to be injected or null if no value could be resolved
*/
- @CheckForNull Object getValue(@Nonnull Object adaptable, @Nonnull String name, @Nonnull Type declaredType, @Nonnull AnnotatedElement element, @Nonnull DisposalCallbackRegistry callbackRegistry);
+ @CheckForNull Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type declaredType, @Nonnull AnnotatedElement element, @Nonnull DisposalCallbackRegistry callbackRegistry);
}
\ No newline at end of file
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java Fri May 29 09:27:50 2015
@@ -39,6 +39,8 @@ import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
import javax.annotation.PostConstruct;
import org.apache.commons.beanutils.PropertyUtils;
@@ -100,7 +102,7 @@ public class ModelAdapterFactory impleme
private List<DisposalCallback> callbacks = new ArrayList<DisposalCallback>();
@Override
- public void addDisposalCallback(DisposalCallback callback) {
+ public void addDisposalCallback(@Nonnull DisposalCallback callback) {
callbacks.add(callback);
}
@@ -189,7 +191,7 @@ public class ModelAdapterFactory impleme
}
@Override
- public <ModelType> ModelType createModel(Object adaptable, Class<ModelType> type) throws MissingElementsException,
+ public @Nonnull <ModelType> ModelType createModel(@Nonnull Object adaptable, @Nonnull Class<ModelType> type) throws MissingElementsException,
InvalidAdaptableException, InvalidValidationModelException, InvalidResourceException {
if (adaptable == null) {
throw new IllegalArgumentException("Given adaptable is null!");
@@ -205,7 +207,7 @@ public class ModelAdapterFactory impleme
}
@Override
- public boolean canCreateFromAdaptable(Object adaptable, Class<?> modelClass) throws ModelClassException {
+ public boolean canCreateFromAdaptable(@Nonnull Object adaptable, @Nonnull Class<?> modelClass) throws ModelClassException {
return internalCanCreateFromAdaptable(adaptable, modelClass);
}
@@ -225,7 +227,7 @@ public class ModelAdapterFactory impleme
}
@Override
- public boolean isModelClass(Object adaptable, Class<?> requestedType) {
+ public boolean isModelClass(@Nonnull Object adaptable, @Nonnull Class<?> requestedType) {
ModelClass<?> type = getImplementationTypeForAdapterType(requestedType, adaptable);
return type.hasModelAnnotation();
}
@@ -382,8 +384,8 @@ public class ModelAdapterFactory impleme
}
}
- private RuntimeException injectElement(final InjectableElement element, final Object adaptable,
- final Model modelAnnotation, final DisposalCallbackRegistry registry,
+ private @CheckForNull RuntimeException injectElement(final InjectableElement element, final Object adaptable,
+ final Model modelAnnotation, final @Nonnull DisposalCallbackRegistry registry,
final InjectCallback callback) {
InjectAnnotationProcessor annotationProcessor = null;
@@ -998,19 +1000,19 @@ public class ModelAdapterFactory impleme
}
}
- Injector[] getInjectors() {
+ @Nonnull Injector[] getInjectors() {
return sortedInjectors;
}
- InjectAnnotationProcessorFactory[] getInjectAnnotationProcessorFactories() {
+ @Nonnull InjectAnnotationProcessorFactory[] getInjectAnnotationProcessorFactories() {
return sortedInjectAnnotationProcessorFactories;
}
- InjectAnnotationProcessorFactory2[] getInjectAnnotationProcessorFactories2() {
+ @Nonnull InjectAnnotationProcessorFactory2[] getInjectAnnotationProcessorFactories2() {
return sortedInjectAnnotationProcessorFactories2;
}
- Collection<StaticInjectAnnotationProcessorFactory> getStaticInjectAnnotationProcessorFactories() {
+ @Nonnull Collection<StaticInjectAnnotationProcessorFactory> getStaticInjectAnnotationProcessorFactories() {
return staticInjectAnnotationProcessorFactories.values();
}
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java Fri May 29 09:27:50 2015
@@ -18,6 +18,8 @@
*/
package org.apache.sling.models.impl;
+import javax.annotation.Nonnull;
+
/**
* This class encapsulates a value of a generic class in case of success or the
* {@link RuntimeException}s in case of an error. It is used because the
@@ -55,7 +57,7 @@ public class Result<SuccessObjectType> {
* @throws IllegalStateException
* in case this object does not represent a failure
*/
- public RuntimeException getThrowable() {
+ public @Nonnull RuntimeException getThrowable() {
if (t == null) {
throw new IllegalStateException("No throwable available");
}
@@ -68,7 +70,7 @@ public class Result<SuccessObjectType> {
* @throws IllegalStateException
* in case this object does not represent a success
*/
- public SuccessObjectType getValue() {
+ public @Nonnull SuccessObjectType getValue() {
if (object == null) {
throw new IllegalStateException(
"Success object is not set, but rather an exception is encapsulated: " + t.getMessage(), t);
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java Fri May 29 09:27:50 2015
@@ -19,6 +19,7 @@ package org.apache.sling.models.impl.inj
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Type;
+import javax.annotation.Nonnull;
import javax.servlet.ServletRequest;
import org.apache.felix.scr.annotations.Component;
@@ -44,7 +45,7 @@ public class BindingsInjector implements
private static final Logger log = LoggerFactory.getLogger(BindingsInjector.class);
@Override
- public String getName() {
+ public @Nonnull String getName() {
return "script-bindings";
}
@@ -52,8 +53,8 @@ public class BindingsInjector implements
return bindings.get(name);
}
- public Object getValue(Object adaptable, String name, Type type, AnnotatedElement element,
- DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type type, @Nonnull AnnotatedElement element,
+ @Nonnull DisposalCallbackRegistry callbackRegistry) {
SlingBindings bindings = getBindings(adaptable);
if (bindings == null) {
return null;
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java Fri May 29 09:27:50 2015
@@ -23,6 +23,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import javax.annotation.Nonnull;
+
import org.apache.commons.lang.StringUtils;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Property;
@@ -44,13 +46,13 @@ import org.osgi.framework.Constants;
public class ChildResourceInjector extends AbstractInjector implements Injector, InjectAnnotationProcessorFactory2 {
@Override
- public String getName() {
+ public @Nonnull String getName() {
return "child-resources";
}
@Override
- public Object getValue(Object adaptable, String name, Type declaredType, AnnotatedElement element,
- DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type declaredType, @Nonnull AnnotatedElement element,
+ @Nonnull DisposalCallbackRegistry callbackRegistry) {
if (adaptable instanceof Resource) {
Resource child = ((Resource) adaptable).getChild(name);
if (child != null) {
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java Fri May 29 09:27:50 2015
@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.List;
+import javax.annotation.Nonnull;
import javax.servlet.ServletRequest;
import org.apache.commons.lang.StringUtils;
@@ -62,7 +63,7 @@ public class OSGiServiceInjector impleme
private BundleContext bundleContext;
@Override
- public String getName() {
+ public @Nonnull String getName() {
return "osgi-services";
}
@@ -71,8 +72,8 @@ public class OSGiServiceInjector impleme
this.bundleContext = ctx.getBundleContext();
}
- public Object getValue(Object adaptable, String name, Type type, AnnotatedElement element,
- DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type type, @Nonnull AnnotatedElement element,
+ @Nonnull DisposalCallbackRegistry callbackRegistry) {
OSGiService annotation = element.getAnnotation(OSGiService.class);
String filterString = null;
if (annotation != null) {
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/RequestAttributeInjector.java Fri May 29 09:27:50 2015
@@ -19,6 +19,7 @@ package org.apache.sling.models.impl.inj
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Type;
+import javax.annotation.Nonnull;
import javax.servlet.ServletRequest;
import org.apache.felix.scr.annotations.Component;
@@ -39,13 +40,13 @@ import org.osgi.framework.Constants;
public class RequestAttributeInjector implements Injector, StaticInjectAnnotationProcessorFactory {
@Override
- public String getName() {
+ public @Nonnull String getName() {
return "request-attributes";
}
@Override
- public Object getValue(Object adaptable, String name, Type declaredType, AnnotatedElement element,
- DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type declaredType, @Nonnull AnnotatedElement element,
+ @Nonnull DisposalCallbackRegistry callbackRegistry) {
if (!(adaptable instanceof ServletRequest)) {
return null;
} else {
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java Fri May 29 09:27:50 2015
@@ -23,6 +23,8 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
+
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.felix.scr.annotations.Component;
@@ -53,13 +55,13 @@ public class ResourcePathInjector extend
private static final Logger LOG = LoggerFactory.getLogger(ResourcePathInjector.class);
@Override
- public String getName() {
+ public @Nonnull String getName() {
return "resource-path";
}
@Override
- public Object getValue(Object adaptable, String name, Type declaredType, AnnotatedElement element,
- DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type declaredType, @Nonnull AnnotatedElement element,
+ @Nonnull DisposalCallbackRegistry callbackRegistry) {
String[] resourcePaths = null;
Path pathAnnotation = element.getAnnotation(Path.class);
ResourcePath resourcePathAnnotation = element.getAnnotation(ResourcePath.class);
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SelfInjector.java Fri May 29 09:27:50 2015
@@ -19,6 +19,8 @@ package org.apache.sling.models.impl.inj
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Type;
+import javax.annotation.Nonnull;
+
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
@@ -42,12 +44,12 @@ import org.osgi.framework.Constants;
public class SelfInjector implements Injector, StaticInjectAnnotationProcessorFactory, AcceptsNullName {
@Override
- public String getName() {
+ public @Nonnull String getName() {
return "self";
}
- public Object getValue(Object adaptable, String name, Type type, AnnotatedElement element,
- DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type type, @Nonnull AnnotatedElement element,
+ @Nonnull DisposalCallbackRegistry callbackRegistry) {
// if the @Self annotation is present return the adaptable to be inserted directly or to be adapted from
if (element.isAnnotationPresent(Self.class)) {
return adaptable;
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/SlingObjectInjector.java Fri May 29 09:27:50 2015
@@ -19,6 +19,7 @@ package org.apache.sling.models.impl.inj
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Type;
+import javax.annotation.Nonnull;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -57,13 +58,13 @@ public final class SlingObjectInjector i
public static final String NAME = "sling-object";
@Override
- public String getName() {
+ public @Nonnull String getName() {
return NAME;
}
@Override
- public Object getValue(final Object adaptable, final String name, final Type type, final AnnotatedElement element,
- final DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(final @Nonnull Object adaptable, final String name, final @Nonnull Type type, final @Nonnull AnnotatedElement element,
+ final @Nonnull DisposalCallbackRegistry callbackRegistry) {
// only class types are supported
if (!(type instanceof Class<?>)) {
Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java?rev=1682403&r1=1682402&r2=1682403&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java Fri May 29 09:27:50 2015
@@ -24,6 +24,8 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.List;
+import javax.annotation.Nonnull;
+
import org.apache.commons.lang.ClassUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.felix.scr.annotations.Component;
@@ -51,12 +53,12 @@ public class ValueMapInjector extends Ab
private static final Logger log = LoggerFactory.getLogger(ValueMapInjector.class);
@Override
- public String getName() {
+ public @Nonnull String getName() {
return "valuemap";
}
- public Object getValue(Object adaptable, String name, Type type, AnnotatedElement element,
- DisposalCallbackRegistry callbackRegistry) {
+ public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type type, @Nonnull AnnotatedElement element,
+ @Nonnull DisposalCallbackRegistry callbackRegistry) {
ValueMap map = getValueMap(adaptable);
if (map == null) {
return null;