1 2 package SOFA.SOFAnode.Made.CDL; 3 import java.rmi.RemoteException; 4 5 import SOFA.SOFAnode.Made.TIR.CDLRepository; 6 import SOFA.SOFAnode.Made.TIR.CDLType; 7 import SOFA.SOFAnode.Made.TIR.EnumDef; 8 import SOFA.SOFAnode.Made.TIR.TIRExceptCreate; 9 import SOFA.SOFAnode.Made.TIR.TIRExceptLock; 10 11 class CompEnum extends CompContainedIm implements CompType { 12 EnumList members; public CompEnum(ID id, CompContainer in, CompRepository inRep, EnumList m) { 14 super(ObjectsKind.o_Enum, id, in, inRep); 15 members = m; 16 } 17 18 public void checkConsist(EnumList props, CompRepository rep) {} 19 20 21 public CDLType toNormal(CDLRepository newRep) throws CDLExceptToNormal { 22 throw new CDLExceptToNormal("It should never throw"); 24 } 25 26 public void addToNormal(EnumDef enum) throws CDLExceptToNormal, CDLExceptRemote, CDLExceptLock { 27 if (id.isin == IDKind.versiontag) { 28 try { 29 enum.tag(id.tag); 30 } catch (RemoteException e) { 31 throw new CDLExceptRemote("Remote exception occured: "+e.getMessage()); 32 } catch (TIRExceptLock e) { 33 throw new CDLExceptLock("Repository is locked."); 34 } catch (TIRExceptCreate ecr) { 35 throw new CDLExceptToNormal("Can't set tag for "+ fullName()); 36 } 37 } 38 members.toFirst(); 39 for(int i=0;i<members.size();i++) { 40 try { 41 if (enum.create_member((String) members.aktual())==null) 42 throw new CDLExceptToNormal("Can't create member "+(String) members.aktual()+" in enum "+fullName()); 43 } catch (RemoteException e) { 44 throw new CDLExceptRemote("Remote exception occured: "+e.getMessage()); 45 } catch (TIRExceptLock e) { 46 throw new CDLExceptLock("Repository is locked."); 47 } catch (TIRExceptCreate ecr) { 48 throw new CDLExceptToNormal("Can't create member "+(String) members.aktual()+" in enum "+fullName()); 49 } 50 members.toNext(); 51 } 52 } 53 } 54 | Popular Tags |