blob: 313db14ba4c0d1fef200bd1421887a7b4922f78e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.internal.roles;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.internal.util.Util;
final class Persistence {
final static String PACKAGE_BASE = "roles"; //$NON-NLS-1$
final static String PACKAGE_PREFIX = "org.eclipse.ui"; //$NON-NLS-1$
final static String PACKAGE_FULL = PACKAGE_PREFIX + '.' + PACKAGE_BASE;
final static String TAG_ACTIVITY_BINDING = "activityBinding"; //$NON-NLS-1$
final static String TAG_ACTIVITY_ID = "activityId"; //$NON-NLS-1$
final static String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
final static String TAG_ID = "id"; //$NON-NLS-1$
final static String TAG_NAME = "name"; //$NON-NLS-1$
final static String TAG_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
final static String TAG_ROLE = "role"; //$NON-NLS-1$
final static String TAG_ROLE_ID = "roleId"; //$NON-NLS-1$
static IActivityBindingDefinition readActivityBindingDefinition(IMemento memento, String pluginIdOverride) {
if (memento == null)
throw new NullPointerException();
String activityId = memento.getString(TAG_ACTIVITY_ID);
String pluginId = pluginIdOverride != null ? pluginIdOverride : memento.getString(TAG_PLUGIN_ID);
String roleId = memento.getString(TAG_ROLE_ID);
return new ActivityBindingDefinition(activityId, pluginId, roleId);
}
static List readActivityBindingDefinitions(IMemento memento, String name, String pluginIdOverride) {
if (memento == null || name == null)
throw new NullPointerException();
IMemento[] mementos = memento.getChildren(name);
if (mementos == null)
throw new NullPointerException();
List list = new ArrayList(mementos.length);
for (int i = 0; i < mementos.length; i++)
list.add(readActivityBindingDefinition(mementos[i], pluginIdOverride));
return list;
}
static IRoleDefinition readRoleDefinition(IMemento memento, String pluginIdOverride) {
if (memento == null)
throw new NullPointerException();
String description = memento.getString(TAG_DESCRIPTION);
String id = memento.getString(TAG_ID);
String name = memento.getString(TAG_NAME);
String pluginId = pluginIdOverride != null ? pluginIdOverride : memento.getString(TAG_PLUGIN_ID);
return new RoleDefinition(description, id, name, pluginId);
}
static List readRoleDefinitions(IMemento memento, String name, String pluginIdOverride) {
if (memento == null || name == null)
throw new NullPointerException();
IMemento[] mementos = memento.getChildren(name);
if (mementos == null)
throw new NullPointerException();
List list = new ArrayList(mementos.length);
for (int i = 0; i < mementos.length; i++)
list.add(readRoleDefinition(mementos[i], pluginIdOverride));
return list;
}
static void writeActivityBindingDefinition(IMemento memento, IActivityBindingDefinition activityBindingDefinition) {
if (memento == null || activityBindingDefinition == null)
throw new NullPointerException();
memento.putString(TAG_ACTIVITY_ID, activityBindingDefinition.getActivityId());
memento.putString(TAG_PLUGIN_ID, activityBindingDefinition.getPluginId());
memento.putString(TAG_ROLE_ID, activityBindingDefinition.getRoleId());
}
static void writeActivityBindingDefinitions(IMemento memento, String name, List activityBindingDefinitions) {
if (memento == null || name == null || activityBindingDefinitions == null)
throw new NullPointerException();
activityBindingDefinitions = new ArrayList(activityBindingDefinitions);
Iterator iterator = activityBindingDefinitions.iterator();
while (iterator.hasNext())
Util.assertInstance(iterator.next(), IActivityBindingDefinition.class);
iterator = activityBindingDefinitions.iterator();
while (iterator.hasNext())
writeActivityBindingDefinition(memento.createChild(name), (IActivityBindingDefinition) iterator.next());
}
static void writeRoleDefinition(IMemento memento, IRoleDefinition roleDefinition) {
if (memento == null || roleDefinition == null)
throw new NullPointerException();
memento.putString(TAG_DESCRIPTION, roleDefinition.getDescription());
memento.putString(TAG_ID, roleDefinition.getId());
memento.putString(TAG_NAME, roleDefinition.getName());
memento.putString(TAG_PLUGIN_ID, roleDefinition.getPluginId());
}
static void writeRoleDefinitions(IMemento memento, String name, List roleDefinitions) {
if (memento == null || name == null || roleDefinitions == null)
throw new NullPointerException();
roleDefinitions = new ArrayList(roleDefinitions);
Iterator iterator = roleDefinitions.iterator();
while (iterator.hasNext())
Util.assertInstance(iterator.next(), IRoleDefinition.class);
iterator = roleDefinitions.iterator();
while (iterator.hasNext())
writeRoleDefinition(memento.createChild(name), (IRoleDefinition) iterator.next());
}
private Persistence() {
}
}