@@ -96,81 +96,68 @@ public function formatQueryResult(QueryResultInterface $result, OutputInterface
9696 }
9797 }
9898
99- public function normalizeValue ( $ value )
99+ public function formatValue ( PropertyInterface $ property , $ showBinary = false )
100100 {
101- if (is_array ($ value )) {
102- if (empty ($ value )) {
103- return '' ;
104- }
105- $ array = $ value ;
106- $ values = array ();
107-
108- foreach ($ array as $ i => $ value ) {
109- if ($ value instanceof NodeInterface) {
110- $ uuid = $ value ->getIdentifier ();
111- $ value = $ value ->getPath ();
112- if ($ uuid ) {
113- $ value .= ' ( ' . $ uuid . ') ' ;
114- }
115- } elseif (is_object ($ value )) {
116- $ value = '<UNKNOWN OBJECT> ' ;
117- } else {
118- $ value = $ value ;
119- }
120- $ value = '[ ' . $ i . '] ' . $ this ->textHelper ->truncate ($ value , 255 );
121- $ values [] = $ value ;
122- }
123-
124- return implode ("\n" , $ values );
101+ $ values = $ property ->getValue ();
102+ if (false === $ property ->isMultiple ()) {
103+ $ values = array ($ values );
125104 }
105+ $ return = array ();
106+
107+ foreach ($ values as $ value ) {
108+ switch (intval ($ property ->getType ())) {
109+ case PropertyType::UNDEFINED :
110+ $ return [] = '#UNDEFINED# ' ;
111+ case PropertyType::BINARY :
112+ if ($ showBinary ) {
113+ $ lines = array ();
114+ $ pointer = $ value ;
115+ while (($ line = fgets ($ pointer )) !== false ) {
116+ $ lines [] = $ line ;
117+ }
118+
119+ $ return [] = implode ('' , $ lines );
120+ }
126121
127- if ($ value instanceof \DateTime) {
128- return $ value ->format ('c ' );
122+ return '(binary data) ' ;
123+ case PropertyType::BOOLEAN :
124+ $ return [] = $ value ? 'true ' : 'false ' ;
125+ break ;
126+ case PropertyType::DATE :
127+ $ return [] = $ value ->format ('c ' );
128+ break ;
129+ case PropertyType::REFERENCE :
130+ case PropertyType::WEAKREFERENCE :
131+ $ return [] = sprintf (
132+ '%s (%s) ' ,
133+ $ this ->textHelper ->truncate ($ value ->getPath (), 255 ),
134+ $ value ->getIdentifier ()
135+ );
136+ break ;
137+ case PropertyType::URI :
138+ case PropertyType::STRING :
139+ $ return [] = $ this ->textHelper ->truncate ($ value );
140+ break ;
141+ case PropertyType::NAME :
142+ case PropertyType::LONG :
143+ case PropertyType::DOUBLE :
144+ case PropertyType::DECIMAL :
145+ case PropertyType::PATH :
146+ $ return [] = $ value ;
147+ break ;
148+ default :
149+ throw new \RuntimeException ('Unknown type ' . $ property ->getType ());
150+ }
129151 }
130152
131- return $ this ->textHelper ->truncate ($ value );
132- }
133-
134- public function formatValue (PropertyInterface $ value , $ showBinary = false )
135- {
136- if (is_array ($ value ->getValue ())) {
137- return $ this ->normalizeValue ($ value ->getValue ());
153+ if ($ property ->isMultiple ()) {
154+ return implode ("\n" , array_map (function ($ value ) {
155+ static $ index = 0 ;
156+ return sprintf ('<comment>[%d]</comment> %s ' , $ index ++, $ value );
157+ }, $ return ));
138158 }
139159
140- switch (intval ($ value ->getType ())) {
141- case PropertyType::UNDEFINED :
142- return '#UNDEFINED# ' ;
143- case PropertyType::BINARY :
144- if ($ showBinary ) {
145- $ lines = array ();
146- $ pointer = $ value ->getValue ();
147- while (($ line = fgets ($ pointer )) !== false ) {
148- $ lines [] = $ line ;
149- }
150-
151- return implode ('' , $ lines );
152- }
153-
154- return '(binary data) ' ;
155- case PropertyType::BOOLEAN :
156- return $ value ->getValue () ? 'true ' : 'false ' ;
157- case PropertyType::DATE :
158- return $ value ->getValue ()->format ('c ' );
159- case PropertyType::REFERENCE :
160- case PropertyType::WEAKREFERENCE :
161- return $ value ->getValue ()->getIdentifier ();
162- case PropertyType::URI :
163- case PropertyType::STRING :
164- return $ this ->textHelper ->truncate ($ value ->getValue ());
165- case PropertyType::NAME :
166- case PropertyType::LONG :
167- case PropertyType::DOUBLE :
168- case PropertyType::DECIMAL :
169- case PropertyType::PATH :
170- return $ value ->getValue ();
171- default :
172- throw new \RuntimeException ('Unknown type ' . $ value ->getType ());
173- }
160+ return implode ("\n" , $ return );
174161 }
175162
176163 public function formatNodePropertiesInline (NodeInterface $ node )
0 commit comments