1 26 27 package org.objectweb.openccm.pss.generator.common.lib; 28 29 31 import org.objectweb.openccm.ast.api.AbstractStorageTypeDecl; 32 import org.objectweb.openccm.ast.api.StorageTypeStateMemberDecl; 33 import org.objectweb.openccm.ast.api.PsdlOperationDecl; 34 import org.objectweb.openccm.ast.api.DeclarationKind; 35 36 import org.objectweb.openccm.generator.java.ast.api.*; 37 import org.objectweb.openccm.generator.java.ast.lib.*; 38 39 import org.objectweb.openccm.generator.common.lib.GenerationException; 40 import org.objectweb.openccm.pss.generator.common.api.PSDL2JavaGenerator; 41 42 import java.util.List ; 43 44 45 52 53 public class AbstractStorageTypeMapping 54 implements org.objectweb.openccm.pss.generator.common.api.AbstractStorageTypeMapping 55 { 56 57 63 64 private AbstractStorageTypeDecl ast_; 65 66 72 75 public AbstractStorageTypeMapping() 76 { 77 ast_ = null; 79 } 80 81 87 93 98 public void 99 setAbstractStorageType(AbstractStorageTypeDecl ast) 100 { 101 ast_ = ast; 102 } 103 104 109 public void 110 toJava(PSDL2JavaGenerator generator) 111 throws GenerationException 112 { 113 InterfaceObject itf = null; 114 MethodObject method = null; 115 AbstractStorageTypeDecl[] inherited = null; 116 List vect = null; 117 StorageTypeStateMemberDecl[] state_members = null; 118 PsdlOperationDecl[] operations = null; 119 120 itf = new InterfaceObjectImpl(ast_.getName()); 121 itf.addComment(" Abstract Storage Type "+ast_.getName()); 122 itf.addComment(""); 123 itf.addComment(" @author OpenCCM PSDL Compiler"); 124 itf.setModifier(ModifierKindImpl.mk_public); 125 itf.setPackage(generator.getTranslator().getPackage(ast_)); 126 127 inherited = ast_.getAbstractStorageTypeList().getAbstractStorageTypes(); 129 for (int i=0; i<inherited.length; i++) 130 itf.addInheritedObject(generator.getTranslator().getAbsoluteName(inherited[i])); 131 132 if (inherited.length < 1) 134 itf.addInheritedObject("org.objectweb.openccm.pss.runtime.common.api.StorageObject"); 135 136 generator.getJavaRepository().addObject(itf); 137 HolderMapping hm = new HolderMapping(ast_.getName(), generator.getTranslator().getPackage(ast_)); 138 hm.toJava(generator.getJavaRepository()); 139 140 vect = generator.getDeclarations(ast_, DeclarationKind.dk_storage_type_state_member); 142 state_members = (StorageTypeStateMemberDecl[])vect.toArray(new StorageTypeStateMemberDecl[0]); 143 for (int i=0; i<state_members.length; i++) 144 { 145 org.objectweb.openccm.pss.generator.common.api.StateMemberMapping state = null; 146 147 state = (org.objectweb.openccm.pss.generator.common.api.StateMemberMapping) 148 MappingObjectFactory.getClass("StateMemberMapping"); 149 state.setStateMember(state_members[i]); 150 state.toJavaAccessors(generator.getTranslator(), itf, false); 151 } 152 153 vect = generator.getDeclarations(ast_, DeclarationKind.dk_psdl_operation); 155 operations = (PsdlOperationDecl[])vect.toArray(new PsdlOperationDecl[0]); 156 for (int i=0; i<operations.length; i++) 157 { 158 org.objectweb.openccm.pss.generator.common.api.PSDLOperationMapping op = null; 159 160 op = (org.objectweb.openccm.pss.generator.common.api.PSDLOperationMapping) 161 MappingObjectFactory.getClass("PSDLOperationMapping"); 162 op.setOperation(operations[i]); 163 op.toJava(generator.getTranslator(), itf); 164 } 165 } 166 } 167 | Popular Tags |