You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/12/22 22:12:23 UTC
svn commit: r489766 - in /cocoon/trunk/blocks/cocoon-portal:
cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/
cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/
cocoon-portal-portlet-impl/src/main/java/org/apac...
Author: cziegeler
Date: Fri Dec 22 13:12:22 2006
New Revision: 489766
URL: http://svn.apache.org/viewvc?view=rev&rev=489766
Log:
Finish refactoring of profile handling
Added:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/ProfileHolder.java (with props)
Removed:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/
Modified:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java?view=diff&rev=489766&r1=489765&r2=489766
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java Fri Dec 22 13:12:22 2006
@@ -38,7 +38,6 @@
import org.apache.cocoon.portal.om.Layout;
import org.apache.cocoon.portal.om.PortalUser;
import org.apache.cocoon.portal.profile.ProfileManager;
-import org.apache.cocoon.portal.scratchpad.Profile;
import org.apache.cocoon.portal.services.aspects.ProfileManagerAspect;
import org.apache.cocoon.portal.services.aspects.impl.support.ProfileManagerAspectContextImpl;
import org.apache.cocoon.portal.services.aspects.support.AspectChain;
@@ -130,7 +129,7 @@
/**
* Prepares the object by using the specified factory.
*/
- protected void prepareObject(Profile profile, Object object)
+ protected void prepareObject(ProfileHolder profile, Object object)
throws LayoutException {
if ( object != null ) {
Object preparableObject = object;
@@ -159,7 +158,7 @@
}
}
- protected Layout checkAvailability(Profile profile, Layout layout) {
+ protected Layout checkAvailability(ProfileHolder profile, Layout layout) {
// is the coplet instance available?
if ( layout instanceof CopletLayout ) {
final CopletLayout cl = (CopletLayout)layout;
@@ -223,7 +222,7 @@
* Process a freshly loaded profile.
* TODO Why do we need the profile?
*/
- protected Collection processCopletInstances(Profile profile, Collection copletInstances)
+ protected Collection processCopletInstances(ProfileHolder profile, Collection copletInstances)
throws LayoutException {
Collection result = copletInstances;
if ( this.chain.hasAspects() ) {
@@ -241,7 +240,7 @@
* Process a freshly loaded profile.
* TODO Why do we need the profile?
*/
- protected Layout processLayout(Profile profile, Layout layout)
+ protected Layout processLayout(ProfileHolder profile, Layout layout)
throws LayoutException {
Layout result = layout;
if ( this.chain.hasAspects() ) {
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java?view=diff&rev=489766&r1=489765&r2=489766
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java Fri Dec 22 13:12:22 2006
@@ -47,8 +47,6 @@
import org.apache.cocoon.portal.om.PortalUser;
import org.apache.cocoon.portal.profile.ProfileException;
import org.apache.cocoon.portal.profile.ProfileLS;
-import org.apache.cocoon.portal.scratchpad.Profile;
-import org.apache.cocoon.portal.scratchpad.ProfileImpl;
import org.apache.commons.collections.map.LinkedMap;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.excalibur.source.SourceNotFoundException;
@@ -130,15 +128,15 @@
this.loader = (ProfileLS)this.manager.lookup(ProfileLS.ROLE);
}
- protected ProfileImpl getUserProfile() {
- return (ProfileImpl)this.portalService.getUserService().getAttribute(KEY_PREFIX + "profile");
+ protected ProfileHolder getUserProfile() {
+ return (ProfileHolder)this.portalService.getUserService().getAttribute(KEY_PREFIX + "profile");
}
protected void removeUserProfiles() {
this.portalService.getUserService().removeAttribute(KEY_PREFIX + "profile");
}
- protected void storeUserProfile(Profile profile) {
+ protected void storeUserProfile(ProfileHolder profile) {
this.portalService.getUserService().setAttribute(KEY_PREFIX + "profile", profile);
}
@@ -156,7 +154,7 @@
* @see org.apache.cocoon.portal.profile.impl.AbstractProfileManager#logout(org.apache.cocoon.portal.om.PortalUser)
*/
protected void logout(PortalUser user) {
- final Profile profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
if ( profile != null ) {
Iterator iter = profile.getCopletInstances().iterator();
@@ -175,7 +173,7 @@
* @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstance(java.lang.String)
*/
public CopletInstance getCopletInstance(String copletID) {
- final Profile profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
if ( profile != null ) {
return profile.searchCopletInstance(copletID);
}
@@ -186,7 +184,7 @@
* @see org.apache.cocoon.portal.profile.ProfileManager#getCopletDefinition(java.lang.String)
*/
public CopletDefinition getCopletDefinition(String copletDataId) {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
if ( profile != null ) {
return profile.searchCopletDefinition(copletDataId);
}
@@ -197,7 +195,7 @@
* @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstances(org.apache.cocoon.portal.om.CopletDefinition)
*/
public List getCopletInstances(CopletDefinition data) {
- final Profile profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
if ( profile != null ) {
final List coplets = new ArrayList();
final Iterator iter = profile.getCopletInstances().iterator();
@@ -217,7 +215,7 @@
* @see Receiver
*/
public void inform(CopletInstanceAddedEvent event) {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
profile.add(event.getTarget());
}
@@ -237,7 +235,7 @@
* @see Receiver
*/
public void inform(CopletInstanceRemovedEvent event) {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
profile.remove(event.getTarget());
}
@@ -246,7 +244,7 @@
* @see Receiver
*/
public void inform(LayoutAddedEvent event) {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
profile.add(event.getTarget());
}
@@ -255,7 +253,7 @@
* @see Receiver
*/
public void inform(LayoutInstanceAddedEvent event) {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
profile.add(event.getTarget());
}
@@ -264,7 +262,7 @@
* @see Receiver
*/
public void inform(LayoutRemovedEvent event) {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
profile.remove(event.getTarget());
}
@@ -272,7 +270,7 @@
* @see org.apache.cocoon.portal.profile.ProfileManager#getLayout(java.lang.String)
*/
public Layout getLayout(String layoutId) {
- Profile profile = this.getUserProfile();
+ ProfileHolder profile = this.getUserProfile();
if ( profile == null ) {
profile = this.loadProfile();
}
@@ -289,7 +287,7 @@
* @see org.apache.cocoon.portal.profile.ProfileManager#getCopletDefinitions()
*/
public Collection getCopletDefinitions() {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
if ( profile != null ) {
return profile.getCopletDefinitions();
}
@@ -300,7 +298,7 @@
* @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstances()
*/
public Collection getCopletInstances() {
- final Profile profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
if ( profile != null ) {
return profile.getCopletInstances();
}
@@ -312,11 +310,11 @@
* This loads the profile for the current user. First the default profile is read. This might
* contain links to other profiles which are then loaded recursively.
*/
- protected Profile loadProfile()
+ protected ProfileHolder loadProfile()
throws ProfileException {
final String defaultProfileName = this.portalService.getUserService().getDefaultProfileName();
final PortalUser user = this.portalService.getUserService().getUser();
- ProfileImpl profile = new ProfileImpl();
+ ProfileHolder profile = new ProfileHolder();
try {
// first "load" the global data
@@ -337,7 +335,7 @@
return profile;
}
- protected void loadProfile(ProfileImpl profile, PortalUser user, String profileName)
+ protected void loadProfile(ProfileHolder profile, PortalUser user, String profileName)
throws ProfileException {
try {
if ( !this.getCopletInstances(profile, user, CATEGORY_USER, profileName) ) {
@@ -422,7 +420,7 @@
}
protected Map getGlobalCopletDefinitions(final PortalUser info,
- final ProfileImpl profile)
+ final ProfileHolder profile)
throws Exception {
// if we already have loaded the profile and don't check
// for changes, just return the profile
@@ -488,7 +486,7 @@
return false;
}
- protected boolean getCopletInstances(final ProfileImpl profile,
+ protected boolean getCopletInstances(final ProfileHolder profile,
final PortalUser info,
final String category,
final String layoutKey)
@@ -512,7 +510,7 @@
}
}
- protected boolean getLayout(final ProfileImpl profile,
+ protected boolean getLayout(final ProfileHolder profile,
final PortalUser info,
final String category,
final String layoutKey)
@@ -583,7 +581,7 @@
protected void saveCopletInstances() {
try {
- final ProfileImpl profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
final Map key = this.buildKey(CATEGORY_USER,
ProfileLS.PROFILETYPE_COPLETINSTANCE,
this.portalService.getUserService().getUser(),
@@ -601,7 +599,7 @@
*/
public void saveLayoutInstances() {
try {
- final Profile profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
final Map key = this.buildKey(CATEGORY_USER,
ProfileLS.PROFILETYPE_LAYOUTINSTANCE,
this.portalService.getUserService().getUser(),
@@ -646,7 +644,7 @@
*/
public LayoutInstance getLayoutInstance(Layout layout) {
LayoutInstance result = null;
- final Profile profile = this.getUserProfile();
+ final ProfileHolder profile = this.getUserProfile();
if ( profile != null ) {
result = profile.searchLayoutInstance(layout);
}
Added: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/ProfileHolder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/ProfileHolder.java?view=auto&rev=489766
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/ProfileHolder.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/ProfileHolder.java Fri Dec 22 13:12:22 2006
@@ -0,0 +1,315 @@
+/*
+ * 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.
+ */
+package org.apache.cocoon.portal.profile.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cocoon.portal.om.CompositeLayout;
+import org.apache.cocoon.portal.om.CopletDefinition;
+import org.apache.cocoon.portal.om.CopletInstance;
+import org.apache.cocoon.portal.om.CopletType;
+import org.apache.cocoon.portal.om.Item;
+import org.apache.cocoon.portal.om.Layout;
+import org.apache.cocoon.portal.om.LayoutInstance;
+
+/**
+ * This class is an utility class holding all profile information of the
+ * current user.
+ *
+ * @version $Id$
+ * @since 2.2
+ */
+public class ProfileHolder {
+
+ /** A map of all coplet types. */
+ protected Map copletTypes;
+
+ /** A map of all coplet definitions. */
+ protected Map copletDefinitions;
+
+ /** A map of all coplet instances. */
+ protected Map copletInstances;
+
+ /** A list of all layouts. */
+ protected List layouts;
+
+ /** A list of all layout instances. */
+ protected Map layoutInstances;
+
+ /** A map of all layouts having an id. */
+ protected Map keyedLayouts;
+
+ /** The root element of the layout. */
+ protected Layout rootLayout;
+
+ /**
+ * Set the root layout for this profile.
+ */
+ public void setRootLayout(Layout rootLayout) {
+ this.rootLayout = rootLayout;
+ this.createLayoutCollections();
+ }
+
+ /**
+ * Set all coplet types.
+ * @param copletTypes An id based map of the types.
+ */
+ public void setCopletTypes(Map copletTypes) {
+ this.copletTypes = copletTypes;
+ }
+
+ /**
+ * Set all coplet definitions.
+ * @param copletTypes An id based map of the definitions.
+ */
+ public void setCopletDefinitions(Map copletDefinitions) {
+ this.copletDefinitions = copletDefinitions;
+ }
+
+ /**
+ * Set all coplet instances.
+ * @param copletTypes An id based map of the instances.
+ */
+ public void setCopletInstances(Collection copletInstances) {
+ this.copletInstances = new HashMap();
+ final Iterator i = copletInstances.iterator();
+ while ( i.hasNext() ) {
+ final CopletInstance current = (CopletInstance) i.next();
+ this.copletInstances.put(current.getId(), current);
+ }
+ }
+
+ /**
+ * Return the root layout.
+ */
+ public Layout getRootLayout() {
+ return this.rootLayout;
+ }
+
+ /**
+ * Return all coplet types of this profile.
+ */
+ public Collection getCopletTypes() {
+ return this.copletTypes.values();
+ }
+
+ /**
+ * Return all coplet definitions.
+ */
+ public Collection getCopletDefinitions() {
+ return this.copletDefinitions.values();
+ }
+
+ /**
+ * Return all coplet instances.
+ */
+ public Collection getCopletInstances() {
+ return this.copletInstances.values();
+ }
+
+ /**
+ * Return all layouts.
+ */
+ public Collection getLayoutObjects() {
+ return this.layouts;
+ }
+
+ /**
+ * Search for a coplet type.
+ */
+ public CopletType searchCopletType(String copletTypeId) {
+ return (CopletType) this.copletTypes.get(copletTypeId);
+ }
+
+ /**
+ * Search for a coplet definition.
+ */
+ public CopletDefinition searchCopletDefinition(String copletDefinitionId) {
+ return (CopletDefinition) this.copletDefinitions.get(copletDefinitionId);
+ }
+
+ /**
+ * Search for all coplet definitions of the coplet type.
+ */
+ public Collection searchCopletDefinitions(CopletType copletType) {
+ final List list = new ArrayList();
+ final Iterator i = this.getCopletDefinitions().iterator();
+ while ( i.hasNext() ) {
+ final CopletDefinition current = (CopletDefinition)i.next();
+ if ( current.getCopletType().equals(copletType) ) {
+ list.add(current);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Search for all coplet definitions of the coplet type.
+ */
+ public Collection searchCopletDefinitions(String copletTypeId) {
+ final CopletType cbd = this.searchCopletType(copletTypeId);
+ if ( cbd != null ) {
+ return this.searchCopletDefinitions(cbd);
+ }
+ return null;
+ }
+
+ /**
+ * Search for a coplet instance.
+ */
+ public CopletInstance searchCopletInstance(String copletId) {
+ return (CopletInstance) this.copletInstances.get(copletId);
+ }
+
+ /**
+ * Search for all coplet instances of the coplet definition.
+ */
+ public Collection searchCopletInstances(CopletDefinition copletDefinition) {
+ final List list = new ArrayList();
+ final Iterator i = this.getCopletInstances().iterator();
+ while ( i.hasNext() ) {
+ final CopletInstance current = (CopletInstance)i.next();
+ if ( current.getCopletDefinition().equals(copletDefinition) ) {
+ list.add(current);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Search for all coplet instances of the coplet definition.
+ */
+ public Collection searchCopletInstances(String copletDefinitionId) {
+ final CopletDefinition copletDef = this.searchCopletDefinition(copletDefinitionId);
+ if ( copletDef != null ) {
+ return this.searchCopletInstances(copletDef);
+ }
+ return null;
+ }
+
+ /**
+ * Search for a layout.
+ */
+ public Layout searchLayout(String layoutId) {
+ return (Layout)this.keyedLayouts.get(layoutId);
+ }
+
+ protected void createLayoutCollections() {
+ this.layouts = new ArrayList();
+ this.keyedLayouts = new HashMap();
+ this.traverseLayouts(this.rootLayout);
+ this.layoutInstances = new HashMap();
+ }
+
+ protected void traverseLayouts(Layout layout) {
+ if ( layout != null ) {
+ this.layouts.add(layout);
+ if ( layout.getId() != null ) {
+ this.keyedLayouts.put( layout.getId(), layout );
+ }
+ if ( layout instanceof CompositeLayout ) {
+ final CompositeLayout cl = (CompositeLayout)layout;
+ final Iterator i = cl.getItems().iterator();
+ while ( i.hasNext() ) {
+ final Item current = (Item)i.next();
+ this.traverseLayouts( current.getLayout() );
+ }
+ }
+ }
+ }
+
+ /**
+ * Add a coplet instance.
+ */
+ public void add(CopletInstance cid) {
+ if ( cid != null ) {
+ this.copletInstances.put(cid.getId(), cid);
+ }
+ }
+
+ /**
+ * Remove a coplet instance.
+ */
+ public void remove(CopletInstance cid) {
+ if ( cid != null ) {
+ this.copletInstances.remove(cid.getId());
+ }
+ }
+
+ /**
+ * Add a layout.
+ */
+ public void add(Layout layout) {
+ if ( layout != null ) {
+ this.layouts.add(layout);
+ if ( layout.getId() != null ) {
+ this.keyedLayouts.put(layout.getId(), layout);
+ }
+ }
+ }
+
+ /**
+ * Add a layout instance.
+ */
+ public void add(LayoutInstance instance) {
+ if ( instance != null) {
+ this.layoutInstances.put(instance.getLayout(), instance);
+ }
+ }
+
+ /**
+ * Search the layout instance for a layout object.
+ * @param layout
+ * @return
+ */
+ public LayoutInstance searchLayoutInstance(Layout layout) {
+ if ( layout != null ) {
+ return (LayoutInstance) this.layoutInstances.get(layout);
+ }
+ return null;
+ }
+
+ /**
+ * Remove a layout.
+ */
+ public void remove(Layout layout) {
+ if ( layout != null ) {
+ if ( layout.getId() != null ) {
+ this.keyedLayouts.remove(layout.getId());
+ }
+ this.layouts.remove(layout);
+ this.layoutInstances.remove(layout);
+ }
+ }
+
+ public Map getCopletInstancesMap() {
+ return this.copletInstances;
+ }
+
+ public Map getCopletDefinitionsMap() {
+ return this.copletDefinitions;
+ }
+
+ public Map getCopletTypesMap() {
+ return this.copletTypes;
+ }
+}
Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/ProfileHolder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/ProfileHolder.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java?view=diff&rev=489766&r1=489765&r2=489766
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java Fri Dec 22 13:12:22 2006
@@ -34,8 +34,7 @@
import org.apache.cocoon.portal.om.PortalUser;
import org.apache.cocoon.portal.profile.ProfileException;
import org.apache.cocoon.portal.profile.impl.GroupBasedProfileManager;
-import org.apache.cocoon.portal.scratchpad.Profile;
-import org.apache.cocoon.portal.scratchpad.ProfileImpl;
+import org.apache.cocoon.portal.profile.impl.ProfileHolder;
import org.apache.commons.lang.StringUtils;
/**
@@ -57,7 +56,7 @@
*/
public class TestProfileManager extends GroupBasedProfileManager {
- protected Profile loadProfile()
+ protected ProfileHolder loadProfile()
throws ProfileException {
final PortalUser user = this.portalService.getUserService().getUser();
if ( user.getUserName().equals("test") ) {
@@ -73,7 +72,7 @@
portletNames.add(StringUtils.replaceChars(values[i], '/', '.'));
}
}
- final ProfileImpl profile = new ProfileImpl();
+ final ProfileHolder profile = new ProfileHolder();
// first "load" the global coplet types
profile.setCopletTypes( this.getGlobalCopletTypes() );