KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > SOFA > SOFAnode > Made > CDL > CompEnum


1 /* $Id: CompEnum.java,v 1.2 2004/05/20 14:23:51 bures Exp $ */
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; // list of strings
13
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   /** from CompType */
21   public CDLType toNormal(CDLRepository newRep) throws CDLExceptToNormal {
22     // never call this
23
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