// we may not have permission to do so
if (LifeCycleManager.ASSOCIATION.equals(interfaceName)) {
return new AssociationImpl(this);
}
else if (LifeCycleManager.AUDITABLE_EVENT.equals(interfaceName)) {
throw new UnsupportedCapabilityException();
}
else if (LifeCycleManager.CLASSIFICATION.equals(interfaceName)) {
return new ClassificationImpl(this);
}
else if (LifeCycleManager.CLASSIFICATION_SCHEME.equals(interfaceName)) {
return new ClassificationSchemeImpl(this);
}
else if (LifeCycleManager.CONCEPT.equals(interfaceName)) {
return new ConceptImpl(this);
}
else if (LifeCycleManager.EMAIL_ADDRESS.equals(interfaceName)) {
return new EmailAddressImpl();
}
else if (LifeCycleManager.EXTERNAL_IDENTIFIER.equals(interfaceName)) {
return new ExternalIdentifierImpl(this);
}
else if (LifeCycleManager.EXTERNAL_LINK.equals(interfaceName)) {
return new ExternalLinkImpl(this);
}
else if (LifeCycleManager.EXTRINSIC_OBJECT.equals(interfaceName)) {
throw new UnsupportedCapabilityException();
}
else if (LifeCycleManager.INTERNATIONAL_STRING.equals(interfaceName)) {
return new InternationalStringImpl();
}
else if (LifeCycleManager.KEY.equals(interfaceName)) {
return new KeyImpl();
}
else if (LifeCycleManager.LOCALIZED_STRING.equals(interfaceName)) {
return new LocalizedStringImpl();
}
else if (LifeCycleManager.ORGANIZATION.equals(interfaceName)) {
return new OrganizationImpl(this);
}
else if (LifeCycleManager.PERSON_NAME.equals(interfaceName)) {
return new PersonNameImpl();
}
else if (LifeCycleManager.POSTAL_ADDRESS.equals(interfaceName)) {
return new PostalAddressImpl(registry.getDefaultPostalScheme());
}
else if (LifeCycleManager.REGISTRY_ENTRY.equals(interfaceName)) {
throw new UnsupportedCapabilityException();
}
else if (LifeCycleManager.REGISTRY_PACKAGE.equals(interfaceName)) {
throw new UnsupportedCapabilityException();
}
else if (LifeCycleManager.SERVICE.equals(interfaceName)) {
return new ServiceImpl(this);
}
else if (LifeCycleManager.SERVICE_BINDING.equals(interfaceName)) {
return new ServiceBindingImpl(this);
}
else if (LifeCycleManager.SLOT.equals(interfaceName)) {
return new SlotImpl();
}
else if (LifeCycleManager.SPECIFICATION_LINK.equals(interfaceName)) {
return new SpecificationLinkImpl(this);
}
else if (LifeCycleManager.TELEPHONE_NUMBER.equals(interfaceName)) {
return new TelephoneNumberImpl();
}
else if (LifeCycleManager.USER.equals(interfaceName)) {
return new UserImpl(this);
}
else if (LifeCycleManager.VERSIONABLE.equals(interfaceName)) {
throw new UnsupportedCapabilityException();
}
else {
throw new InvalidRequestException("Unknown interface: " + interfaceName);
}
}