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;