View Javadoc

1   /*
2    =================== DO NOT EDIT THIS FILE ====================
3    Generated by Modello
4    any modifications will be overwritten.
5    ==============================================================
6    */
7   
8   package org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.io.stax;
9   
10    //---------------------------------/
11   //- Imported classes and packages -/
12  //---------------------------------/
13  
14  import java.io.IOException;
15  import java.io.InputStream;
16  import java.io.StringWriter;
17  import java.io.Writer;
18  import java.text.DateFormat;
19  import java.util.Iterator;
20  import java.util.Locale;
21  import java.util.jar.Manifest;
22  import javanet.staxutils.IndentingXMLStreamWriter;
23  import javax.xml.stream.*;
24  import org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.JdoOperation;
25  import org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.JdoPermission;
26  import org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.JdoResource;
27  import org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.JdoRole;
28  import org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.JdoUserAssignment;
29  import org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.RbacDatabase;
30  import org.codehaus.plexus.util.xml.Xpp3Dom;
31  
32  /**
33   * Class RbacJdoModelStaxWriter.
34   * 
35   * @version $Revision$ $Date$
36   */
37  public class RbacJdoModelStaxWriter
38  {
39  
40        //--------------------------/
41       //- Class/Member Variables -/
42      //--------------------------/
43  
44      /**
45       * Field curId.
46       */
47      private int curId;
48  
49      /**
50       * Field idMap.
51       */
52      private java.util.Map idMap;
53  
54  
55        //----------------/
56       //- Constructors -/
57      //----------------/
58  
59      public RbacJdoModelStaxWriter()
60      {
61          idMap = new java.util.HashMap();
62      } //-- org.codehaus.plexus.security.authorization.rbac.jdo.v0_9_0.io.stax.RbacJdoModelStaxWriter()
63  
64  
65        //-----------/
66       //- Methods -/
67      //-----------/
68  
69      /**
70       * Method write.
71       * 
72       * @param writer
73       * @param rbacDatabase
74       * @throws java.io.IOException
75       * @throws XMLStreamException
76       */
77      public void write( Writer writer, RbacDatabase rbacDatabase )
78          throws java.io.IOException, XMLStreamException
79      {
80          XMLOutputFactory factory = XMLOutputFactory.newInstance();
81          boolean supportWindowsLineEndings = false;
82          if ( factory.isPropertySupported( "com.ctc.wstx.outputEscapeCr" ) )
83          {
84              factory.setProperty( "com.ctc.wstx.outputEscapeCr", Boolean.FALSE );
85              supportWindowsLineEndings = true;
86          }
87          if ( factory.isPropertySupported( "org.codehaus.stax2.automaticEmptyElements" ) )
88          {
89              factory.setProperty( "org.codehaus.stax2.automaticEmptyElements", Boolean.FALSE );
90          }
91          IndentingXMLStreamWriter serializer = new IndentingXMLStreamWriter( factory.createXMLStreamWriter( writer ) );
92          if ( supportWindowsLineEndings )
93          {
94              serializer.setNewLine( serializer.getLineSeparator() );
95          }
96          serializer.writeStartDocument( rbacDatabase.getModelEncoding(), "1.0" );
97          writeRbacDatabase( rbacDatabase, "rbacDatabase", serializer );
98          serializer.writeEndDocument();
99      } //-- void write( Writer, RbacDatabase )
100 
101     /**
102      * Method writeDom.
103      * 
104      * @param dom
105      * @param serializer
106      * @throws XMLStreamException
107      */
108     private void writeDom( Xpp3Dom dom, XMLStreamWriter serializer )
109         throws XMLStreamException
110     {
111         serializer.writeStartElement( dom.getName() );
112         String[] attributeNames = dom.getAttributeNames();
113         for ( int i = 0; i < attributeNames.length; i++ )
114         {
115             String attributeName = attributeNames[i];
116             serializer.writeAttribute( attributeName, dom.getAttribute( attributeName ) );
117         }
118         Xpp3Dom[] children = dom.getChildren();
119         for ( int i = 0; i < children.length; i++ )
120         {
121             writeDom( children[i], serializer );
122         }
123         String value = dom.getValue();
124         if ( value != null )
125         {
126             serializer.writeCharacters( value );
127         }
128         serializer.writeEndElement();
129     } //-- void writeDom( Xpp3Dom, XMLStreamWriter )
130 
131     /**
132      * Method writeJdoOperation.
133      * 
134      * @param jdoOperation
135      * @param serializer
136      * @param tagName
137      * @throws java.io.IOException
138      * @throws XMLStreamException
139      */
140     private void writeJdoOperation( JdoOperation jdoOperation, String tagName, XMLStreamWriter serializer )
141         throws java.io.IOException, XMLStreamException
142     {
143         if ( jdoOperation != null )
144         {
145             serializer.writeStartElement( tagName );
146             if ( jdoOperation.getName() != null )
147             {
148                 serializer.writeStartElement( "name" );
149                 serializer.writeCharacters( jdoOperation.getName() );
150                 serializer.writeEndElement();
151             }
152             if ( jdoOperation.getDescription() != null )
153             {
154                 serializer.writeStartElement( "description" );
155                 serializer.writeCharacters( jdoOperation.getDescription() );
156                 serializer.writeEndElement();
157             }
158             if ( jdoOperation.isPermanent() != false )
159             {
160                 serializer.writeStartElement( "permanent" );
161                 serializer.writeCharacters( String.valueOf( jdoOperation.isPermanent() ) );
162                 serializer.writeEndElement();
163             }
164             if ( jdoOperation.isResourceRequired() != false )
165             {
166                 serializer.writeStartElement( "resourceRequired" );
167                 serializer.writeCharacters( String.valueOf( jdoOperation.isResourceRequired() ) );
168                 serializer.writeEndElement();
169             }
170             serializer.writeEndElement();
171         }
172     } //-- void writeJdoOperation( JdoOperation, String, XMLStreamWriter )
173 
174     /**
175      * Method writeJdoPermission.
176      * 
177      * @param jdoPermission
178      * @param serializer
179      * @param tagName
180      * @throws java.io.IOException
181      * @throws XMLStreamException
182      */
183     private void writeJdoPermission( JdoPermission jdoPermission, String tagName, XMLStreamWriter serializer )
184         throws java.io.IOException, XMLStreamException
185     {
186         if ( jdoPermission != null )
187         {
188             serializer.writeStartElement( tagName );
189             if ( jdoPermission.getName() != null )
190             {
191                 serializer.writeStartElement( "name" );
192                 serializer.writeCharacters( jdoPermission.getName() );
193                 serializer.writeEndElement();
194             }
195             if ( jdoPermission.getDescription() != null )
196             {
197                 serializer.writeStartElement( "description" );
198                 serializer.writeCharacters( jdoPermission.getDescription() );
199                 serializer.writeEndElement();
200             }
201             if ( jdoPermission.isPermanent() != false )
202             {
203                 serializer.writeStartElement( "permanent" );
204                 serializer.writeCharacters( String.valueOf( jdoPermission.isPermanent() ) );
205                 serializer.writeEndElement();
206             }
207             if ( jdoPermission.getOperation() != null )
208             {
209                 serializer.writeStartElement( "operation" );
210                 serializer.writeAttribute( "name", jdoPermission.getOperation().getName() );
211                 serializer.writeEndElement();
212             }
213             if ( jdoPermission.getResource() != null )
214             {
215                 serializer.writeStartElement( "resource" );
216                 serializer.writeAttribute( "identifier", jdoPermission.getResource().getIdentifier() );
217                 serializer.writeEndElement();
218             }
219             serializer.writeEndElement();
220         }
221     } //-- void writeJdoPermission( JdoPermission, String, XMLStreamWriter )
222 
223     /**
224      * Method writeJdoResource.
225      * 
226      * @param jdoResource
227      * @param serializer
228      * @param tagName
229      * @throws java.io.IOException
230      * @throws XMLStreamException
231      */
232     private void writeJdoResource( JdoResource jdoResource, String tagName, XMLStreamWriter serializer )
233         throws java.io.IOException, XMLStreamException
234     {
235         if ( jdoResource != null )
236         {
237             serializer.writeStartElement( tagName );
238             if ( jdoResource.getIdentifier() != null )
239             {
240                 serializer.writeStartElement( "identifier" );
241                 serializer.writeCharacters( jdoResource.getIdentifier() );
242                 serializer.writeEndElement();
243             }
244             if ( jdoResource.isPattern() != false )
245             {
246                 serializer.writeStartElement( "pattern" );
247                 serializer.writeCharacters( String.valueOf( jdoResource.isPattern() ) );
248                 serializer.writeEndElement();
249             }
250             if ( jdoResource.isPermanent() != false )
251             {
252                 serializer.writeStartElement( "permanent" );
253                 serializer.writeCharacters( String.valueOf( jdoResource.isPermanent() ) );
254                 serializer.writeEndElement();
255             }
256             serializer.writeEndElement();
257         }
258     } //-- void writeJdoResource( JdoResource, String, XMLStreamWriter )
259 
260     /**
261      * Method writeJdoRole.
262      * 
263      * @param jdoRole
264      * @param serializer
265      * @param tagName
266      * @throws java.io.IOException
267      * @throws XMLStreamException
268      */
269     private void writeJdoRole( JdoRole jdoRole, String tagName, XMLStreamWriter serializer )
270         throws java.io.IOException, XMLStreamException
271     {
272         if ( jdoRole != null )
273         {
274             serializer.writeStartElement( tagName );
275             if ( jdoRole.getName() != null )
276             {
277                 serializer.writeStartElement( "name" );
278                 serializer.writeCharacters( jdoRole.getName() );
279                 serializer.writeEndElement();
280             }
281             if ( jdoRole.getDescription() != null )
282             {
283                 serializer.writeStartElement( "description" );
284                 serializer.writeCharacters( jdoRole.getDescription() );
285                 serializer.writeEndElement();
286             }
287             if ( jdoRole.isAssignable() != false )
288             {
289                 serializer.writeStartElement( "assignable" );
290                 serializer.writeCharacters( String.valueOf( jdoRole.isAssignable() ) );
291                 serializer.writeEndElement();
292             }
293             if ( jdoRole.isPermanent() != false )
294             {
295                 serializer.writeStartElement( "permanent" );
296                 serializer.writeCharacters( String.valueOf( jdoRole.isPermanent() ) );
297                 serializer.writeEndElement();
298             }
299             if ( ( jdoRole.getChildRoleNames() != null ) && ( jdoRole.getChildRoleNames().size() > 0 ) )
300             {
301                 serializer.writeStartElement( "childRoleNames" );
302                 for ( Iterator iter = jdoRole.getChildRoleNames().iterator(); iter.hasNext(); )
303                 {
304                     String childRoleName = (String) iter.next();
305                     serializer.writeStartElement( "childRoleName" );
306                     serializer.writeCharacters( childRoleName );
307                     serializer.writeEndElement();
308                 }
309                 serializer.writeEndElement();
310             }
311             if ( ( jdoRole.getPermissions() != null ) && ( jdoRole.getPermissions().size() > 0 ) )
312             {
313                 serializer.writeStartElement( "permissions" );
314                 for ( Iterator iter = jdoRole.getPermissions().iterator(); iter.hasNext(); )
315                 {
316                     JdoPermission o = (JdoPermission) iter.next();
317                     serializer.writeStartElement( "permission" );
318                     serializer.writeAttribute( "name", o.getName() );
319                     serializer.writeEndElement();
320                 }
321                 serializer.writeEndElement();
322             }
323             serializer.writeEndElement();
324         }
325     } //-- void writeJdoRole( JdoRole, String, XMLStreamWriter )
326 
327     /**
328      * Method writeJdoUserAssignment.
329      * 
330      * @param jdoUserAssignment
331      * @param serializer
332      * @param tagName
333      * @throws java.io.IOException
334      * @throws XMLStreamException
335      */
336     private void writeJdoUserAssignment( JdoUserAssignment jdoUserAssignment, String tagName, XMLStreamWriter serializer )
337         throws java.io.IOException, XMLStreamException
338     {
339         if ( jdoUserAssignment != null )
340         {
341             serializer.writeStartElement( tagName );
342             if ( jdoUserAssignment.getPrincipal() != null )
343             {
344                 serializer.writeStartElement( "principal" );
345                 serializer.writeCharacters( jdoUserAssignment.getPrincipal() );
346                 serializer.writeEndElement();
347             }
348             if ( jdoUserAssignment.getTimestamp() != null )
349             {
350                 serializer.writeStartElement( "timestamp" );
351                 serializer.writeCharacters( new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US ).format( jdoUserAssignment.getTimestamp() ) );
352                 serializer.writeEndElement();
353             }
354             if ( jdoUserAssignment.isPermanent() != false )
355             {
356                 serializer.writeStartElement( "permanent" );
357                 serializer.writeCharacters( String.valueOf( jdoUserAssignment.isPermanent() ) );
358                 serializer.writeEndElement();
359             }
360             if ( ( jdoUserAssignment.getRoleNames() != null ) && ( jdoUserAssignment.getRoleNames().size() > 0 ) )
361             {
362                 serializer.writeStartElement( "roleNames" );
363                 for ( Iterator iter = jdoUserAssignment.getRoleNames().iterator(); iter.hasNext(); )
364                 {
365                     String roleName = (String) iter.next();
366                     serializer.writeStartElement( "roleName" );
367                     serializer.writeCharacters( roleName );
368                     serializer.writeEndElement();
369                 }
370                 serializer.writeEndElement();
371             }
372             serializer.writeEndElement();
373         }
374     } //-- void writeJdoUserAssignment( JdoUserAssignment, String, XMLStreamWriter )
375 
376     /**
377      * Method writeRbacDatabase.
378      * 
379      * @param rbacDatabase
380      * @param serializer
381      * @param tagName
382      * @throws java.io.IOException
383      * @throws XMLStreamException
384      */
385     private void writeRbacDatabase( RbacDatabase rbacDatabase, String tagName, XMLStreamWriter serializer )
386         throws java.io.IOException, XMLStreamException
387     {
388         if ( rbacDatabase != null )
389         {
390             serializer.writeStartElement( tagName );
391             if ( ( rbacDatabase.getRoles() != null ) && ( rbacDatabase.getRoles().size() > 0 ) )
392             {
393                 serializer.writeStartElement( "roles" );
394                 for ( Iterator iter = rbacDatabase.getRoles().iterator(); iter.hasNext(); )
395                 {
396                     JdoRole o = (JdoRole) iter.next();
397                     writeJdoRole( o, "role", serializer );
398                 }
399                 serializer.writeEndElement();
400             }
401             if ( ( rbacDatabase.getPermissions() != null ) && ( rbacDatabase.getPermissions().size() > 0 ) )
402             {
403                 serializer.writeStartElement( "permissions" );
404                 for ( Iterator iter = rbacDatabase.getPermissions().iterator(); iter.hasNext(); )
405                 {
406                     JdoPermission o = (JdoPermission) iter.next();
407                     writeJdoPermission( o, "permission", serializer );
408                 }
409                 serializer.writeEndElement();
410             }
411             if ( ( rbacDatabase.getOperations() != null ) && ( rbacDatabase.getOperations().size() > 0 ) )
412             {
413                 serializer.writeStartElement( "operations" );
414                 for ( Iterator iter = rbacDatabase.getOperations().iterator(); iter.hasNext(); )
415                 {
416                     JdoOperation o = (JdoOperation) iter.next();
417                     writeJdoOperation( o, "operation", serializer );
418                 }
419                 serializer.writeEndElement();
420             }
421             if ( ( rbacDatabase.getResources() != null ) && ( rbacDatabase.getResources().size() > 0 ) )
422             {
423                 serializer.writeStartElement( "resources" );
424                 for ( Iterator iter = rbacDatabase.getResources().iterator(); iter.hasNext(); )
425                 {
426                     JdoResource o = (JdoResource) iter.next();
427                     writeJdoResource( o, "resource", serializer );
428                 }
429                 serializer.writeEndElement();
430             }
431             if ( ( rbacDatabase.getUserAssignments() != null ) && ( rbacDatabase.getUserAssignments().size() > 0 ) )
432             {
433                 serializer.writeStartElement( "userAssignments" );
434                 for ( Iterator iter = rbacDatabase.getUserAssignments().iterator(); iter.hasNext(); )
435                 {
436                     JdoUserAssignment o = (JdoUserAssignment) iter.next();
437                     writeJdoUserAssignment( o, "userAssignment", serializer );
438                 }
439                 serializer.writeEndElement();
440             }
441             serializer.writeEndElement();
442         }
443     } //-- void writeRbacDatabase( RbacDatabase, String, XMLStreamWriter )
444 
445 }