View Javadoc

1   /*
2    * Copyright 2006 Outsource Cafe, Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the 'License')
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *    http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an 'AS IS' BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.javagen.agile.oo.visitor;
17  
18  import java.util.Set;
19  
20  import org.javagen.agile.core.model.Model;
21  import org.javagen.agile.oo.model.Class;
22  import org.javagen.agile.oo.model.Property;
23  import org.javagen.agile.oo.model.Reference;
24  
25  public class IdAssignerOOVisitor extends DefaultOOVisitor {
26  
27      public static final String DEFAULT_NAME_PREFIX = "oo:";
28      private String prefix = DEFAULT_NAME_PREFIX;
29      
30      public IdAssignerOOVisitor() {
31          this.setItinerary((Set<String>)null);
32          if (prefix==null)
33              prefix = "";
34      }
35      
36      public void visit(Class _class) {
37          if (_class.getId()==null)
38              _class.setId(prefix+_class.getName());
39      }
40  
41      public void visit(Property property) {
42          if (property.getId()==null)
43              property.setId(prefix+property.getParentClass().getName()+"."+property.getName());
44      }
45  
46      public void visit(Reference reference) {
47          if (reference.getId()==null)
48              reference.setId(prefix+reference.getParentClass().getName()+"."+reference.getName());
49      }
50  
51      public void visit(Model model) {
52          if (model.getId()==null)
53              model.setId(model.getName());
54      }
55  
56      public String getPrefix() {
57          return prefix;
58      }
59  
60      public void setPrefix(String prefix) {
61          this.prefix = prefix;
62      }
63  
64  
65  }