KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ojb > broker > metadata > InsertProcedureDescriptor


1 package org.apache.ojb.broker.metadata;
2
3 /* Copyright 2003-2005 The Apache Software Foundation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 import org.apache.commons.lang.builder.ToStringBuilder;
19 import org.apache.commons.lang.builder.ToStringStyle;
20 import java.io.Serializable JavaDoc;
21 import java.util.Iterator JavaDoc;
22
23 /**
24  * An InsertProcedureDescriptor contains information that is related to the
25  * procedure/function that is used to handle the insertion of new records.
26  * <br>
27  * Note: Be careful when use InsertProcedureDescriptor variables or caching
28  * InsertProcedureDescriptor instances, because instances could become invalid
29  * during runtime (see {@link MetadataManager}).
30  *
31  * @author <a HREF="mailto:rongallagher@bellsouth.net">Ron Gallagher<a>
32  * @version $Id: InsertProcedureDescriptor.java,v 1.7.2.2 2005/12/21 22:26:10 tomdz Exp $
33  */

34 public class InsertProcedureDescriptor
35     extends ProcedureDescriptor
36     implements Serializable JavaDoc, XmlCapable
37 {
38     private static final long serialVersionUID = -3808311052971075269L;
39     //---------------------------------------------------------------
40
/**
41      * The value that indicates if the argument list for this procedure
42      * includes all field-descriptors from the related class-descriptor.
43      */

44     private boolean includeAllFields;
45
46     //---------------------------------------------------------------
47
/**
48      * Constructor declaration
49      */

50     public InsertProcedureDescriptor(
51         ClassDescriptor classDescriptor,
52         String JavaDoc name,
53         boolean includeAllFields)
54     {
55         super(classDescriptor, name);
56         if (includeAllFields)
57         {
58             this.addArguments(this.getClassDescriptor().getFieldDescriptions());
59         }
60         this.includeAllFields = includeAllFields;
61     }
62
63     //---------------------------------------------------------------
64
/**
65      * Retrieve the value that indicates if the argument list for this
66      * procedure includes all field-descriptors from the related
67      * class-descriptor.
68      *
69      * @return The current value
70      */

71     public boolean getIncludeAllFields()
72     {
73         return this.includeAllFields;
74     }
75
76     //---------------------------------------------------------------
77
/**
78      * Add an argument
79      * <p>
80      * The argument will be added only if this procedure is not configured
81      * to {@link #getIncludeAllFields() include all arguments}.
82      */

83     public final void addArgument(ArgumentDescriptor argument)
84     {
85         if (!this.getIncludeAllFields())
86         {
87             super.addArgument(argument);
88         }
89     }
90
91     /*
92      * @see XmlCapable#toXML()
93      */

94     public String JavaDoc toXML()
95     {
96         RepositoryTags tags = RepositoryTags.getInstance();
97         String JavaDoc eol = System.getProperty( "line.separator" );
98
99         // The result
100
StringBuffer JavaDoc result = new StringBuffer JavaDoc( 1024 );
101         result.append( eol );
102         result.append( " " );
103
104         // Opening tag and attributes
105
result.append( " " );
106         result.append( tags.getOpeningTagNonClosingById( INSERT_PROCEDURE ) );
107         result.append( " " );
108         result.append( tags.getAttribute( NAME, this.getName() ) );
109         if( this.hasReturnValue() )
110         {
111             result.append( " " );
112             result.append( tags.getAttribute( RETURN_FIELD_REF, this.getReturnValueFieldRefName() ) );
113         }
114         result.append( " " );
115         result.append( tags.getAttribute( INCLUDE_ALL_FIELDS, String.valueOf( this.getIncludeAllFields() ) ) );
116         result.append( ">" );
117         result.append( eol );
118
119         // Write all arguments only if we're not including all fields.
120
if( !this.getIncludeAllFields() )
121         {
122             Iterator JavaDoc args = this.getArguments().iterator();
123             while( args.hasNext() )
124             {
125                 result.append( ( ( ArgumentDescriptor ) args.next() ).toXML() );
126             }
127         }
128
129         // Closing tag
130
result.append( " " );
131         result.append( tags.getClosingTagById( INSERT_PROCEDURE ) );
132         result.append( eol );
133         return result.toString();
134     }
135
136     //---------------------------------------------------------------
137
/**
138      * Provide a string representation of this object
139      *
140      * @return a string representation of this object
141      */

142     public String JavaDoc toString()
143     {
144         ToStringBuilder buf = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE);
145         buf.append("name", this.getName());
146         buf.append("includeAllFields", this.getIncludeAllFields());
147         if (this.hasReturnValue())
148         {
149             buf.append("returnFieldRefName", this.getReturnValueFieldRefName());
150         }
151         return buf.toString();
152     }
153 }
154
Popular Tags