View Javadoc

1   /*******************************************************************************
2    * Copyright (c) 2009 Ordina and committers to Mod4j
3    * All rights reserved. This program and the accompanying materials
4    * are made available under the terms of the Eclipse Public License v1.0
5    * which accompanies this distribution, and is available at
6    * http://www.eclipse.org/legal/epl-v10.html
7    *
8    * Contributors:
9    *     Ordina - initial implementation
10   *******************************************************************************/
11  package org.mod4j.dsl.service.generator.helpers;
12  
13  import java.util.ArrayList;
14  import java.util.Collection;
15  import java.util.List;
16  
17  import org.mod4j.crossx.broker.CrossxBroker;
18  import org.mod4j.crossx.mm.crossx.ReferenceSymbolProperty;
19  import org.mod4j.crossx.mm.crossx.Symbol;
20  
21  
22  public class ServiceUtil {
23  
24  //    static public String javaClassName(String className){
25  //        return className;
26  //    }
27  //
28  //    static public String javaBaseClassName(String className){
29  //        return javaClassName(className) + ProjectProperties.IMPLBASE_SUFFIX;
30  //    }
31  
32      /**
33       * Get the BusinessClassDto that are is referenced by roleRerference
34       * @param roleReference
35       * @return
36       */
37      static public String getReferredDtoName(Symbol roleReference) {
38          ReferenceSymbolProperty referredDto = CrossxBroker.getReferenceProperty(roleReference, "ReferencedDto") ; 
39          Symbol referredDtoSymbol = CrossxBroker.lookupSymbol(referredDto.getModelname(),
40                                                               referredDto.getSymbolname(), "Dto") ;
41  
42          if( CrossxBroker.getPropertyValue(referredDtoSymbol, "dtoType").equals("ListDto") ) {
43              return CrossxBroker.getPropertyValue(referredDtoSymbol, "baseDto");
44          } else {
45              // dtoType must be BusinessClassDto
46              return referredDtoSymbol.getName();
47          }
48      }
49  
50      /**
51       * Get the BusinessClassDto that are is referenced by roleRerference
52       * @param roleReference
53       * @return
54       */
55      static public String getReferredBusinessClassName(Symbol roleReference) {
56          ReferenceSymbolProperty referredDto = CrossxBroker.getReferenceProperty(roleReference, "ReferencedDto") ; 
57          Symbol referredDtoSymbol = CrossxBroker.lookupSymbol(referredDto.getModelname(),
58                                                               referredDto.getSymbolname(), "Dto") ;
59  
60  //        if( CrossxBroker.getPropertyValue(referredDtoSymbol, "dtoType").equals("ListDto") ) {
61  //            
62  //            ReferenceSymbolProperty ref = CrossxBroker.getReferenceProperty(referredDtoSymbol, "BaseDto");
63  //            Symbol dto = CrossxBroker.lookupReference(ref);
64  //            return CrossxBroker.getPropertyValue(dto, "businessClass");
65  //        } else {
66              // dtoType must be BusinessClassDto
67              return CrossxBroker.getPropertyValue(referredDtoSymbol, "businessClass");
68  //        }
69      }
70  
71      static public Collection<Symbol> makeUnique(Collection<Symbol> symbols) {
72          List<Symbol> result = new ArrayList<Symbol>();
73          
74          List<String> names = new ArrayList<String>();
75          for (Symbol symbol : symbols) {
76              if( !names.contains(symbol.getName() )){
77                  names.add(symbol.getName() );
78                  result.add(symbol);
79              }
80          }
81          return result;
82      }
83  
84   }