/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* $Id: $ */packageorg.apache.fop.afp.modca;importjava.io.IOException;importjava.io.OutputStream;importjava.util.List;/** * A base class that encapsulates common features of * ActiveEnvironmentGroup and ResourceEnvironmentGroup */publicabstractclassAbstractEnvironmentGroupextendsAbstractNamedAFPObject{/** the collection of MapDataResource objects */protectedfinalListmapDataResources=null;/** the collection of MapPageOverlay objects */protectedListmapPageOverlays=null;/** * Main constructor * * @param name the object name */publicAbstractEnvironmentGroup(Stringname){super(name);}privateListgetMapPageOverlays(){if(mapPageOverlays==null){mapPageOverlays=newjava.util.ArrayList();}returnmapPageOverlays;}/** * Actually creates the MPO object. * Also creates the supporting object (an IPO) * * @param name the name of the overlay to be used */publicvoidcreateOverlay(Stringname){MapPageOverlaympo=getCurrentMapPageOverlay();if(mpo==null){mpo=newMapPageOverlay();getMapPageOverlays().add(mpo);}try{mpo.addOverlay(name);}catch(MaximumSizeExceededExceptionmsee){mpo=newMapPageOverlay();getMapPageOverlays().add(mpo);try{mpo.addOverlay(name);}catch(MaximumSizeExceededExceptionex){// Should never happen (but log just in case)log.error("createOverlay():: resulted in a MaximumSizeExceededException");}}}/** * Getter method for the most recent MapPageOverlay added to the * Active Environment Group (returns null if no MapPageOverlay exist) * * @return the most recent Map Coded Font */privateMapPageOverlaygetCurrentMapPageOverlay(){return(MapPageOverlay)getLastElement(this.mapPageOverlays);}protectedObjectgetLastElement(Listlist){if(list!=null&&list.size()>0){returnlist.get(list.size()-1);}else{returnnull;}}/** {@inheritDoc} */protectedvoidwriteContent(OutputStreamos)throwsIOException{super.writeContent(os);}}