11/*
2- * Copyright 2012 Daniel Bechler
2+ * Copyright 2014 Daniel Bechler
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
1616
1717package de .danielbechler .diff .path ;
1818
19- import de .danielbechler .diff .selector .AnyElementSelector ;
2019import de .danielbechler .diff .selector .BeanPropertyElementSelector ;
2120import de .danielbechler .diff .selector .CollectionItemElementSelector ;
2221import de .danielbechler .diff .selector .ElementSelector ;
@@ -42,37 +41,32 @@ private NodePath(final List<ElementSelector> elementSelectors)
4241 this .elementSelectors = Collections .unmodifiableList (elementSelectors );
4342 }
4443
45- public static AppendableBuilder startBuilding ()
46- {
47- final List <ElementSelector > elementSelectors1 = new LinkedList <ElementSelector >();
48- elementSelectors1 .add (RootElementSelector .getInstance ());
49- return new AppendableBuilderImpl (elementSelectors1 );
50- }
51-
5244 public static AppendableBuilder startBuildingFrom (final NodePath nodePath )
5345 {
5446 Assert .notNull (nodePath , "propertyPath" );
5547 return new AppendableBuilderImpl (new ArrayList <ElementSelector >(nodePath .getElementSelectors ()));
5648 }
5749
58- public static NodePath with ( final String propertyName , final String ... additionalPropertyNames )
50+ public List < ElementSelector > getElementSelectors ( )
5951 {
60- return startBuilding (). propertyName ( propertyName , additionalPropertyNames ). build () ;
52+ return elementSelectors ;
6153 }
6254
63- public static NodePath withRoot ( )
55+ public static NodePath with ( final String propertyName , final String ... additionalPropertyNames )
6456 {
65- return startBuilding ().build ();
57+ return startBuilding ().propertyName ( propertyName , additionalPropertyNames ). build ();
6658 }
6759
68- public List < ElementSelector > getElementSelectors ()
60+ public static AppendableBuilder startBuilding ()
6961 {
70- return elementSelectors ;
62+ final List <ElementSelector > elementSelectors1 = new LinkedList <ElementSelector >();
63+ elementSelectors1 .add (RootElementSelector .getInstance ());
64+ return new AppendableBuilderImpl (elementSelectors1 );
7165 }
7266
73- public boolean matches ( final NodePath nodePath )
67+ public static NodePath withRoot ( )
7468 {
75- return nodePath . equals ( this );
69+ return startBuilding (). build ( );
7670 }
7771
7872 public boolean isParentOf (final NodePath nodePath )
@@ -100,6 +94,34 @@ public ElementSelector getLastElementSelector()
10094 return elementSelectors .get (elementSelectors .size () - 1 );
10195 }
10296
97+ @ Override
98+ public int hashCode ()
99+ {
100+ return elementSelectors .hashCode ();
101+ }
102+
103+ @ Override
104+ public boolean equals (final Object o )
105+ {
106+ if (this == o )
107+ {
108+ return true ;
109+ }
110+ if (o == null || getClass () != o .getClass ())
111+ {
112+ return false ;
113+ }
114+
115+ final NodePath that = (NodePath ) o ;
116+
117+ if (!elementSelectors .equals (that .elementSelectors ))
118+ {
119+ return false ;
120+ }
121+
122+ return true ;
123+ }
124+
103125 @ Override
104126 public String toString ()
105127 {
@@ -131,34 +153,6 @@ else if (previousElementSelector instanceof RootElementSelector)
131153 return sb .toString ();
132154 }
133155
134- @ Override
135- public boolean equals (final Object o )
136- {
137- if (this == o )
138- {
139- return true ;
140- }
141- if (o == null || getClass () != o .getClass ())
142- {
143- return false ;
144- }
145-
146- final NodePath that = (NodePath ) o ;
147-
148- if (!elementSelectors .equals (that .elementSelectors ))
149- {
150- return false ;
151- }
152-
153- return true ;
154- }
155-
156- @ Override
157- public int hashCode ()
158- {
159- return elementSelectors .hashCode ();
160- }
161-
162156 public int compareTo (final NodePath that )
163157 {
164158 if (this .getElementSelectors ().size () <= that .getElementSelectors ().size ())
@@ -179,10 +173,13 @@ else if (this.getElementSelectors().size() > that.getElementSelectors().size())
179173 }
180174 }
181175
182- public static interface AppendableBuilder
176+ public boolean matches ( final NodePath nodePath )
183177 {
184- AppendableBuilder any ();
178+ return nodePath .equals (this );
179+ }
185180
181+ public static interface AppendableBuilder
182+ {
186183 AppendableBuilder element (ElementSelector elementSelector );
187184
188185 AppendableBuilder propertyName (String name , String ... names );
@@ -204,12 +201,6 @@ public AppendableBuilderImpl(final List<ElementSelector> elementSelectors)
204201 this .elementSelectors = new LinkedList <ElementSelector >(elementSelectors );
205202 }
206203
207- public AppendableBuilder any ()
208- {
209- elementSelectors .add (new AnyElementSelector ());
210- return this ;
211- }
212-
213204 public AppendableBuilder element (final ElementSelector elementSelector )
214205 {
215206 Assert .notNull (elementSelector , "elementSelector" );
0 commit comments