Merge pull request #43 from wdebeau1/master

Fix for https://github.com/jamesagnew/hapi-fhir/issues/42
This commit is contained in:
James Agnew 2014-10-30 13:57:03 -04:00
commit 1d2141accd
4 changed files with 14 additions and 21 deletions

4
.gitignore vendored
View File

@ -1,8 +1,12 @@
/bin
/target
target/
.idea/
.project/
.settings/
.metadata/
RemoteSystemsTempFiles/
Servers/
*.iml
*.log
*.log*

View File

@ -25,7 +25,7 @@ package ca.uhn.fhir.rest.server;
*
* @see RestfulServer#setAddProfileTag(AddProfileTagEnum)
*/
enum AddProfileTagEnum {
public enum AddProfileTagEnum {
/**
* Do not add profile tags automatically
*/

View File

@ -31,27 +31,12 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import ca.uhn.fhir.context.*;
import ca.uhn.fhir.model.api.ICompositeDatatype;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.WordUtils;
import ca.uhn.fhir.context.BaseRuntimeChildDefinition;
import ca.uhn.fhir.context.BaseRuntimeDeclaredChildDefinition;
import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition;
import ca.uhn.fhir.context.BaseRuntimeElementDefinition;
import ca.uhn.fhir.context.BaseRuntimeElementDefinition.ChildTypeEnum;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.RuntimeChildChoiceDefinition;
import ca.uhn.fhir.context.RuntimeChildCompositeDatatypeDefinition;
import ca.uhn.fhir.context.RuntimeChildContainedResources;
import ca.uhn.fhir.context.RuntimeChildDeclaredExtensionDefinition;
import ca.uhn.fhir.context.RuntimeChildPrimitiveDatatypeDefinition;
import ca.uhn.fhir.context.RuntimeChildResourceBlockDefinition;
import ca.uhn.fhir.context.RuntimeChildResourceDefinition;
import ca.uhn.fhir.context.RuntimeChildUndeclaredExtensionDefinition;
import ca.uhn.fhir.context.RuntimePrimitiveDatatypeDefinition;
import ca.uhn.fhir.context.RuntimeResourceBlockDefinition;
import ca.uhn.fhir.context.RuntimeResourceDefinition;
import ca.uhn.fhir.context.RuntimeResourceReferenceDefinition;
import ca.uhn.fhir.model.api.IFhirVersion;
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
import ca.uhn.fhir.model.api.IResource;
@ -79,7 +64,7 @@ public class FhirDstu1 implements IFhirVersion {
public Object createServerConformanceProvider(RestfulServer theServer) {
return new ServerConformanceProvider(theServer);
}
private void fillBasics(StructureElement theElement, BaseRuntimeElementDefinition<?> def, LinkedList<String> path, BaseRuntimeDeclaredChildDefinition theChild) {
if (path.isEmpty()) {
path.add(def.getName());
@ -311,6 +296,9 @@ public class FhirDstu1 implements IFhirVersion {
if (nextChild.getChildType() != null && IPrimitiveDatatype.class.isAssignableFrom(nextChild.getChildType())) {
RuntimePrimitiveDatatypeDefinition pdef = (RuntimePrimitiveDatatypeDefinition) nextChild.getSingleChildOrThrow();
defn.getDefinition().addType().setCode(DataTypeEnum.VALUESET_BINDER.fromCodeString(pdef.getName()));
} else if (nextChild.getChildType() != null && ICompositeDatatype.class.isAssignableFrom(nextChild.getChildType())) {
RuntimeCompositeDatatypeDefinition pdef = (RuntimeCompositeDatatypeDefinition) nextChild.getSingleChildOrThrow();
defn.getDefinition().addType().setCode(DataTypeEnum.VALUESET_BINDER.fromCodeString(pdef.getName()));
} else {
RuntimeResourceBlockDefinition pdef = (RuntimeResourceBlockDefinition) nextChild.getSingleChildOrThrow();
scanForExtensions(theProfile, pdef);

View File

@ -79,7 +79,8 @@ public class RuntimeResourceDefinitionTest {
assertEquals("ResourceWithExtensionsA.extension", element.get(2).getPath().getValue());
assertEquals("ResourceWithExtensionsA.extension", element.get(3).getPath().getValue());
assertEquals("ResourceWithExtensionsA.extension", element.get(4).getPath().getValue());
assertEquals("ResourceWithExtensionsA.modifierExtension", element.get(5).getPath().getValue());
assertEquals("ResourceWithExtensionsA.extension", element.get(5).getPath().getValue());
assertEquals("ResourceWithExtensionsA.modifierExtension", element.get(6).getPath().getValue());
assertEquals(DataTypeEnum.EXTENSION, element.get(1).getDefinition().getType().get(0).getCode().getValueAsEnum());
assertEquals("url", element.get(1).getSlicing().getDiscriminator().getValue());
@ -87,7 +88,7 @@ public class RuntimeResourceDefinitionTest {
assertEquals(DataTypeEnum.EXTENSION, element.get(2).getDefinition().getType().get(0).getCode().getValueAsEnum());
assertEquals("#f1", element.get(2).getDefinition().getType().get(0).getProfile().getValueAsString());
assertEquals("ResourceWithExtensionsA.identifier", element.get(12).getPath().getValue());
assertEquals("ResourceWithExtensionsA.identifier", element.get(13).getPath().getValue());
}