jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tobias Bocanegra (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-473) Some enhancements to jackrabbit commons
Date Wed, 05 Jul 2006 17:51:30 GMT
    [ http://issues.apache.org/jira/browse/JCR-473?page=comments#action_12419318 ] 

Tobias Bocanegra commented on JCR-473:
--------------------------------------

> consequently:
> - modify signature of InternalValue.create that include a value conversion to take a
>  ValueFactory param and adjust all usages inside the core package. 

i don't like the ValueFactory passed all over the classes. this is only because InternalValue
now needs it. either we pass the namespace resolver, or the value factory, but not both. especially,
since the internal value is an 'internal' representation of the value, and should actually
have nothing to do with the string->name/path conversion.

we should find something nicer. for example, drop the to methods that take the nsresolver:

create(Value value, NamespaceResolver nsResolver) is only used 6 times,
create(Value value, int targetType, NamespaceResolver nsResolver) is used 11 times.
create(String value, int targetType, NamespaceResolver nsResolver) is used 8 times.

and put them to the valuehelper. in this case, the caler has to deal with it, and not the
InternalValue.

-1 for applying this patch

> Some enhancements to jackrabbit commons
> ---------------------------------------
>
>          Key: JCR-473
>          URL: http://issues.apache.org/jira/browse/JCR-473
>      Project: Jackrabbit
>         Type: Improvement

>     Versions: 1.0
>     Reporter: angela
>     Assignee: angela
>  Attachments: JCR-473_rev_417443.patch
>
> I would like to suggest a couple of  enhancements to the commons module. 
> The patch was created against rev. 417443 and the tests did not reveal any 
> problems.
> Summary of suggestion modifications:
> QName
> -------------------------------------------------------------------------------------------------------------------------
> - reduce QName to its core functionality and put conversion from and to JCR name to
>   a separate class 'NameFormat'
> - in order not to break existing code, all methods that deal with the conversion in QName
>   are marked deprecated.
> - add constant for the name of the root node.
> Path
> -------------------------------------------------------------------------------------------------------------------------
> - reduce Path to its core functionality and put conversion from and to JCR path to
>   a separate class 'PathFormat'
> - in order not to break existing code, all methods that deal with the conversion in Path
>   are marked deprecated.
> - introduce new constants for UNDEFINED_INDEX (0) and DEFAULT_INDEX (1), that
>    are currently hardcoded throughout  the jackrabbit project.
> - new method Path.getElement(int) [PathElement]
> - make PathElement constants public (used by PathFormat)
> Path.PathBuilder
> -------------------------------------------------------------------------------------------------------------------------
> - additional constructor  PathBuilder(Path)
> Path.PathElement
> -------------------------------------------------------------------------------------------------------------------------
> - add PathElement.getNormalizedIndex() that always asserts a 1-based index.
> - change subclasses to be private (no usage within the jackrabbit, except inside Path).
> PathMap
> -------------------------------------------------------------------------------------------------------------------------
> - move o.a.j.core.PathMap  to o.a.j.util.PathMap in order to make it available in the
>   commons module.
> NamespaceResolver
> -------------------------------------------------------------------------------------------------------------------------
> - add methods for resolution of paths:
>    > getQPath(String jcrPath) [Path]
>    > getJCRPath(Path qPath) [String]
> NamespaceListener
> -------------------------------------------------------------------------------------------------------------------------
> - add method 'namespaceRemove(String)'
> ValueHelper
> -------------------------------------------------------------------------------------------------------------------------
> currently  JCR value objects are 'manually' created in the ValueHelper despite the
> fact, that JSR170 defines a ValueFactory interface. Consequently the ValueHelper
> present in the commons module can only be used by implementations that use
> the same value implementations.
> - add new helper methods that take a ValueFactory as argument.
> - in order not to break existing code the original methods are marked deprecated and
>   may be removed at a later time.
> consequently:
> - modify signature of  InternalValue.create that include a value conversion to take a
>   ValueFactory param and adjust all usages inside the core package.
> ValueFactoryImpl
> -------------------------------------------------------------------------------------------------------------------------
> - createValue(String, int ): used to call the conversion on ValueHelper. with the 
>    changes suggested to ValueHelper, the code must be changed in order to
>    created instances of the Value implementations within the factory.
> - together with the modification to ValueHelper, stefan suggested to replace the public

>   constructor with a static 'getInstance' method. All usages within jackrabbit.core,
were
>    modified accordingly.
> Text
> -------------------------------------------------------------------------------------------------------------------------
> - add getName(String, boolean) where the boolean flag indicates whether  a trailing slash

>    should be ignored.
> - add getRelativeParent(String, int, boolean) where the boolean flag indicates whether
 a 
>   trailing slash should be ignored.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message