Polishing

This commit is contained in:
Juergen Hoeller
2014-03-11 22:09:46 +01:00
parent 8b2b165777
commit 4d3ca4319e
10 changed files with 72 additions and 67 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,15 +18,18 @@ package org.springframework.expression;
/**
* A property accessor is able to read (and possibly write) to object properties. The
* interface places no restrictions and so implementors are free to access properties
* directly as fields or through getters or in any other way they see as appropriate. A
* resolver can optionally specify an array of target classes for which it should be
* called - but if it returns null from getSpecificTargetClasses() then it will be called
* for all property references and given a chance to determine if it can read or write
* them. Property resolvers are considered to be ordered and each will be called in turn.
* A property accessor is able to read from (and possibly write to) an object's properties.
* This interface places no restrictions, and so implementors are free to access properties
* directly as fields or through getters or in any other way they see as appropriate.
*
* <p>A resolver can optionally specify an array of target classes for which it should be
* called. However, if it returns {@code null} from {@link #getSpecificTargetClasses()},
* it will be called for all property references and given a chance to determine if it
* can read or write them.
*
* <p>Property resolvers are considered to be ordered and each will be called in turn.
* The only rule that affects the call order is that any naming the target class directly
* in getSpecifiedTargetClasses() will be called first, before the general resolvers.
* in {@link #getSpecificTargetClasses()} will be called first, before the general resolvers.
*
* @author Andy Clement
* @since 3.0
@@ -34,11 +37,11 @@ package org.springframework.expression;
public interface PropertyAccessor {
/**
* Return an array of classes for which this resolver should be called. Returning null
* indicates this is a general resolver that can be called in an attempt to resolve a
* property on any type.
* @return an array of classes that this resolver is suitable for (or null if a
* general resolver)
* Return an array of classes for which this resolver should be called.
* <p>>Returning {@code null} indicates this is a general resolver that
* can be called in an attempt to resolve a property on any type.
* @return an array of classes that this resolver is suitable for
* (or {@code null} if a general resolver)
*/
Class<?>[] getSpecificTargetClasses();
@@ -49,13 +52,13 @@ public interface PropertyAccessor {
* @param target the target object upon which the property is being accessed
* @param name the name of the property being accessed
* @return true if this resolver is able to read the property
* @throws AccessException if there is any problem determining whether the property
* can be read
* @throws AccessException if there is any problem determining whether the property can be read
*/
boolean canRead(EvaluationContext context, Object target, String name) throws AccessException;
/**
* Called to read a property from a specified target object
* Called to read a property from a specified target object.
* Should only succeed if {@link #canRead} also returns {@code true}.
* @param context the evaluation context in which the access is being attempted
* @param target the target object upon which the property is being accessed
* @param name the name of the property being accessed
@@ -65,20 +68,20 @@ public interface PropertyAccessor {
TypedValue read(EvaluationContext context, Object target, String name) throws AccessException;
/**
* Called to determine if a resolver instance is able to write to a specified property
* on a specified target object.
* Called to determine if a resolver instance is able to write to a specified
* property on a specified target object.
* @param context the evaluation context in which the access is being attempted
* @param target the target object upon which the property is being accessed
* @param name the name of the property being accessed
* @return true if this resolver is able to write to the property
* @throws AccessException if there is any problem determining whether the property
* can be written to
* @throws AccessException if there is any problem determining whether the
* property can be written to
*/
boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException;
/**
* Called to write to a property on a specified target object. Should only succeed if
* canWrite() also returns true.
* Called to write to a property on a specified target object.
* Should only succeed if {@link #canWrite} also returns {@code true}.
* @param context the evaluation context in which the access is being attempted
* @param target the target object upon which the property is being accessed
* @param name the name of the property being accessed