blob: 707207b8cef68eeea2a32990bfec4fac3b69e467 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Composent, Inc. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Scott Lewis - initial API and implementation
******************************************************************************/
package org.eclipse.ecf.remoteserviceadmin.ui.rsa.model;
import org.eclipse.core.runtime.Platform;
import org.eclipse.ecf.internal.remoteservices.ui.Messages;
import org.eclipse.ecf.remoteserviceadmin.ui.endpoint.model.EndpointPropertySource;
import org.eclipse.ecf.remoteservices.ui.util.PropertyUtils;
import org.eclipse.ui.views.properties.IPropertySource;
import org.osgi.framework.ServiceReference;
/**
* @since 3.3
*/
public abstract class AbstractRegistrationNode extends AbstractRSANode {
public static final String ERROR = Messages.AbstractRegistrationNode_ErrorName;
private final Throwable error;
/**
* @since 3.4
*/
public AbstractRegistrationNode(Throwable t, boolean showStack) {
this.error = t;
if (this.error != null)
addChild(new ExceptionNode(this.error, showStack));
}
public AbstractRegistrationNode(Throwable t) {
this(t, false);
}
protected Throwable getError() {
return error;
}
protected boolean hasError() {
return getError() != null;
}
public abstract boolean isClosed();
protected abstract String getValidName();
/**
* @since 3.4
*/
protected String getErrorName(){
return ERROR;
}
/**
* @since 3.4
*/
protected String getClosedName() {
return CLOSED;
}
public abstract ServiceReference getServiceReference();
public String getName() {
return hasError() ? getErrorName() : (isClosed() ? getClosedName() : getValidName());
}
@Override
public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
if (adapter == IPropertySource.class) {
ServiceReference sr = getServiceReference();
if (sr != null)
return new EndpointPropertySource(PropertyUtils.convertServicePropsToMap(sr));
}
return Platform.getAdapterManager().getAdapter(this, adapter);
}
public abstract void close();
}