01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: /**
18: * @author Pavel Dolgov
19: * @version $Revision: 1.2 $
20: */package org.apache.harmony.applet;
21:
22: import java.net.URL;
23: import java.util.HashSet;
24: import java.util.Set;
25:
26: /**
27: * Representation of browser's (or other host app's) document that contains applets
28: */
29: final class Document {
30:
31: final URL docBase;
32: final int id;
33: private final Set<DocumentSlice> slices = new HashSet<DocumentSlice>();
34: final Factory factory;
35:
36: Document(Factory factory, URL url, int id) {
37: docBase = url;
38: this .id = id;
39: this .factory = factory;
40: }
41:
42: void add(DocumentSlice ds) {
43: synchronized (slices) {
44: slices.add(ds);
45: }
46: }
47:
48: void remove(DocumentSlice ds) {
49: synchronized (slices) {
50: slices.remove(ds);
51: if (slices.isEmpty()) {
52: factory.remove(this);
53: }
54: }
55: }
56: }
|