KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > mdr > storagemodel > AttrSet


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.mdr.storagemodel;
20
21 import java.util.*;
22
23 import javax.jmi.reflect.RefObject;
24 import javax.jmi.reflect.DuplicateException;
25 import org.netbeans.mdr.persistence.MOFID;
26
27 import org.netbeans.mdr.persistence.StorageException;
28
29 /**
30  *
31  * @author Martin Matula
32  */

33 public class AttrSet extends AttrCollection {
34     public AttrSet() {
35         inner = new HashSet();
36     }
37
38     AttrSet(StorableFeatured mdrObject, StorableClass.AttributeDescriptor desc) throws StorageException {
39         this(mdrObject, desc, null);
40     }
41
42     protected AttrSet(StorableFeatured mdrObject, StorableClass.AttributeDescriptor desc, Collection values) throws StorageException {
43         super(mdrObject, desc, null);
44
45         if (values != null) {
46             checkMaxSize(values.size());
47             inner = new HashSet(values.size() * 2);
48             for (Iterator it = values.iterator(); it.hasNext();) {
49                 Object JavaDoc value = it.next();
50                 checkType(value);
51                 if (!inner.add(value)) {
52                     throw new DuplicateException(value, getMetaElement());
53                 }
54                 if (isRefObject) {
55                     setAttribComposite((RefObject) value);
56                 }
57             }
58         } else {
59             inner = new HashSet();
60         }
61     }
62
63     protected void checkUnwrap() {
64         if (needsUnwrap) {
65             HashSet old = (HashSet) inner;
66             inner = new HashSet();
67             for (Iterator it = old.iterator(); it.hasNext();) {
68                 Object JavaDoc temp = it.next();
69                 if (temp instanceof MOFID) {
70                     inner.add(mdrObject.getMdrStorage().getRepository().getByMofId((MOFID) temp));
71                 } else {
72                     inner.add(temp);
73                 }
74             }
75             needsUnwrap = false;
76         }
77     }
78 }
79
Popular Tags