Package ca.uhn.fhir.model.dstu.valueset

Examples of ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum


      resource.getType().setValue(def.getName());
      resource.getProfile().setId(new IdDt(def.getResourceProfile()));

      Map<String, Conformance.RestResourceSearchParam> nameToSearchParam = new HashMap<String, Conformance.RestResourceSearchParam>();
      for (BaseMethodBinding nextMethodBinding : next.getMethodBindings()) {
        RestfulOperationTypeEnum resOp = nextMethodBinding.getResourceOperationType();
        if (resOp != null) {
          if (resourceOps.contains(resOp) == false) {
            resourceOps.add(resOp);
            resource.addOperation().setCode(resOp);
          }
View Full Code Here


      TreeSet<String> includes = new TreeSet<String>();

      // Map<String, Conformance.RestResourceSearchParam> nameToSearchParam = new HashMap<String,
      // Conformance.RestResourceSearchParam>();
      for (BaseMethodBinding<?> nextMethodBinding : next.getMethodBindings()) {
        RestfulOperationTypeEnum resOp = nextMethodBinding.getResourceOperationType();
        if (resOp != null) {
          if (resourceOps.contains(resOp) == false) {
            resourceOps.add(resOp);
            resource.addOperation().setCode(resOp);
          }
        }

        RestfulOperationSystemEnum sysOp = nextMethodBinding.getSystemOperationType();
        if (sysOp != null) {
          if (systemOps.contains(sysOp) == false) {
            systemOps.add(sysOp);
            rest.addOperation().setCode(sysOp);
          }
        }

        if (nextMethodBinding instanceof SearchMethodBinding) {
          SearchMethodBinding searchMethodBinding = (SearchMethodBinding) nextMethodBinding;
          includes.addAll(searchMethodBinding.getIncludes());

          List<IParameter> params = searchMethodBinding.getParameters();
          List<SearchParameter> searchParameters = new ArrayList<SearchParameter>();
          for (IParameter nextParameter : params) {
            if ((nextParameter instanceof SearchParameter)) {
              searchParameters.add((SearchParameter) nextParameter);
            }
          }
          Collections.sort(searchParameters, new Comparator<SearchParameter>() {
            @Override
            public int compare(SearchParameter theO1, SearchParameter theO2) {
              if (theO1.isRequired() == theO2.isRequired()) {
                return theO1.getName().compareTo(theO2.getName());
              }
              if (theO1.isRequired()) {
                return -1;
              }
              return 1;
            }
          });
          if (searchParameters.isEmpty()) {
            continue;
          }
          boolean allOptional = searchParameters.get(0).isRequired() == false;

          RestQuery query = null;
          if (!allOptional) {
            query = rest.addQuery();
            query.getDocumentation().setValue(searchMethodBinding.getDescription());
            query.addUndeclaredExtension(false, ExtensionConstants.QUERY_RETURN_TYPE, new CodeDt(resourceName));
            for (String nextInclude : searchMethodBinding.getIncludes()) {
              query.addUndeclaredExtension(false, ExtensionConstants.QUERY_ALLOWED_INCLUDE, new StringDt(nextInclude));
            }
          }

          for (SearchParameter nextParameter : searchParameters) {

            String nextParamName = nextParameter.getName();
            String chain = null;
            if (nextParamName.contains(".")) {
              chain = nextParamName.substring(nextParamName.indexOf('.') + 1);
              nextParamName = nextParamName.substring(0, nextParamName.indexOf('.'));
            }

            String nextParamDescription = nextParameter.getDescription();

            /*
             * If the parameter has no description, default to the one from the resource
             */
            if (StringUtils.isBlank(nextParamDescription)) {
              RuntimeSearchParam paramDef = def.getSearchParam(nextParamName);
              if (paramDef != null) {
                nextParamDescription = paramDef.getDescription();
              }
            }

            RestResourceSearchParam param;
            if (query == null) {
              param = resource.addSearchParam();
            } else {
              param = query.addParameter();
              param.addUndeclaredExtension(false, ExtensionConstants.PARAM_IS_REQUIRED, new BooleanDt(nextParameter.isRequired()));
            }

            param.setName(nextParamName);
            if (StringUtils.isNotBlank(chain)) {
              param.addChain(chain);
            }
            param.setDocumentation(nextParamDescription);
            param.setType(nextParameter.getParamType());

          }
        }

        Collections.sort(resource.getOperation(), new Comparator<RestResourceOperation>() {
          @Override
          public int compare(RestResourceOperation theO1, RestResourceOperation theO2) {
            RestfulOperationTypeEnum o1 = theO1.getCode().getValueAsEnum();
            RestfulOperationTypeEnum o2 = theO2.getCode().getValueAsEnum();
            if (o1 == null && o2 == null) {
              return 0;
            }
            if (o1 == null) {
              return 1;
            }
            if (o2 == null) {
              return -1;
            }
            return o1.ordinal() - o2.ordinal();
          }
        });

      }

View Full Code Here

      TreeSet<String> includes = new TreeSet<String>();

      // Map<String, Conformance.RestResourceSearchParam> nameToSearchParam = new HashMap<String,
      // Conformance.RestResourceSearchParam>();
      for (BaseMethodBinding<?> nextMethodBinding : next.getMethodBindings()) {
        RestfulOperationTypeEnum resOp = nextMethodBinding.getResourceOperationType();
        if (resOp != null) {
          if (resourceOps.contains(resOp) == false) {
            resourceOps.add(resOp);
            resource.addOperation().setCode(resOp);
          }
        }

        RestfulOperationSystemEnum sysOp = nextMethodBinding.getSystemOperationType();
        if (sysOp != null) {
          if (systemOps.contains(sysOp) == false) {
            systemOps.add(sysOp);
            rest.addOperation().setCode(sysOp);
          }
        }

        if (nextMethodBinding instanceof SearchMethodBinding) {
          SearchMethodBinding searchMethodBinding = (SearchMethodBinding) nextMethodBinding;
          includes.addAll(searchMethodBinding.getIncludes());

          List<IParameter> params = searchMethodBinding.getParameters();
          List<SearchParameter> searchParameters = new ArrayList<SearchParameter>();
          for (IParameter nextParameter : params) {
            if ((nextParameter instanceof SearchParameter)) {
              searchParameters.add((SearchParameter) nextParameter);
            }
          }
          Collections.sort(searchParameters, new Comparator<SearchParameter>() {
            @Override
            public int compare(SearchParameter theO1, SearchParameter theO2) {
              if (theO1.isRequired() == theO2.isRequired()) {
                return theO1.getName().compareTo(theO2.getName());
              }
              if (theO1.isRequired()) {
                return -1;
              }
              return 1;
            }
          });
          if (searchParameters.isEmpty()) {
            continue;
          }
          boolean allOptional = searchParameters.get(0).isRequired() == false;

          RestQuery query = null;
          if (!allOptional) {
            query = rest.addQuery();
            query.getDocumentation().setValue(searchMethodBinding.getDescription());
            query.addUndeclaredExtension(false, ExtensionConstants.QUERY_RETURN_TYPE, new CodeDt(resourceName));
            for (String nextInclude : searchMethodBinding.getIncludes()) {
              query.addUndeclaredExtension(false, ExtensionConstants.QUERY_ALLOWED_INCLUDE, new StringDt(nextInclude));
            }
          }

          for (SearchParameter nextParameter : searchParameters) {

            String nextParamName = nextParameter.getName();

//            String chain = null;
            String nextParamUnchainedName = nextParamName;
            if (nextParamName.contains(".")) {
//              chain = nextParamName.substring(nextParamName.indexOf('.') + 1);
              nextParamUnchainedName = nextParamName.substring(0, nextParamName.indexOf('.'));
            }

            String nextParamDescription = nextParameter.getDescription();

            /*
             * If the parameter has no description, default to the one from the resource
             */
            if (StringUtils.isBlank(nextParamDescription)) {
              RuntimeSearchParam paramDef = def.getSearchParam(nextParamUnchainedName);
              if (paramDef != null) {
                nextParamDescription = paramDef.getDescription();
              }
            }

            RestResourceSearchParam param;
            if (query == null) {
              param = resource.addSearchParam();
            } else {
              param = query.addParameter();
              param.addUndeclaredExtension(false, ExtensionConstants.PARAM_IS_REQUIRED, new BooleanDt(nextParameter.isRequired()));
            }

            param.setName(nextParamName);
//            if (StringUtils.isNotBlank(chain)) {
//              param.addChain(chain);
//            }
            param.setDocumentation(nextParamDescription);
            param.setType(nextParameter.getParamType());
            for (Class<? extends IResource> nextTarget : nextParameter.getDeclaredTypes()) {
              RuntimeResourceDefinition targetDef = myRestfulServer.getFhirContext().getResourceDefinition(nextTarget);
              if (targetDef != null) {
                ResourceTypeEnum code = ResourceTypeEnum.VALUESET_BINDER.fromCodeString(targetDef.getName());
                if (code != null) {
                  param.addTarget(code);
                }
              }
            }
           
          }
        }

        Collections.sort(resource.getOperation(), new Comparator<RestResourceOperation>() {
          @Override
          public int compare(RestResourceOperation theO1, RestResourceOperation theO2) {
            RestfulOperationTypeEnum o1 = theO1.getCode().getValueAsEnum();
            RestfulOperationTypeEnum o2 = theO2.getCode().getValueAsEnum();
            if (o1 == null && o2 == null) {
              return 0;
            }
            if (o1 == null) {
              return 1;
            }
            if (o2 == null) {
              return -1;
            }
            return o1.ordinal() - o2.ordinal();
          }
        });

      }

View Full Code Here

      resource.getType().setValue(def.getName());
      resource.getProfile().setId(new IdDt(def.getResourceProfile()));

      Map<String, Conformance.RestResourceSearchParam> nameToSearchParam = new HashMap<String, Conformance.RestResourceSearchParam>();
      for (BaseMethodBinding nextMethodBinding : next.getMethodBindings()) {
        RestfulOperationTypeEnum resOp = nextMethodBinding.getResourceOperationType();
        if (resOp != null) {
          if (resourceOps.contains(resOp) == false) {
            resourceOps.add(resOp);
            resource.addOperation().setCode(resOp);
          }
        }

        RestfulOperationSystemEnum sysOp = nextMethodBinding.getSystemOperationType();
        if (sysOp != null) {
          if (systemOps.contains(sysOp) == false) {
            systemOps.add(sysOp);
            rest.addOperation().setCode(sysOp);
          }
        }

        if (nextMethodBinding instanceof SearchMethodBinding) {
          List<IParameter> params = ((SearchMethodBinding) nextMethodBinding).getParameters();
          // TODO: this would probably work best if we sorted these by
          // required first, then optional

          RestResourceSearchParam searchParam = null;
          ExtensionDt searchParamChain = null;
          for (IParameter nextParameterObj : params) {
            if (!(nextParameterObj instanceof SearchParameter)) {
              continue;
            }

            SearchParameter nextParameter = (SearchParameter) nextParameterObj;

            if (searchParam == null) {
              if (!nameToSearchParam.containsKey(nextParameter.getName())) {
                RestResourceSearchParam param = resource.addSearchParam();
                param.setName(nextParameter.getName());
                param.setDocumentation(nextParameter.getDescription());
                param.setType(nextParameter.getParamType());
                searchParam = param;
              } else {
                searchParam = nameToSearchParam.get(nextParameter.getName());
              }

              if (searchParam != null) {
                searchParam.setType(nextParameter.getParamType());
              }

            } else {

              searchParamChain = searchParam.addUndeclaredExtension(false, ExtensionConstants.CONF_ADDITIONAL_PARAM);
             
//              if (searchParamChain == null) {
//              } else {
//                searchParamChain = searchParamChain.addUndeclaredExtension(false, ExtensionConstants.CONF_ADDITIONAL_PARAM);
//              }

              ExtensionDt ext = new ExtensionDt();
              ext.setUrl(ExtensionConstants.CONF_ADDITIONAL_PARAM_NAME);
              ext.setValue(new StringDt(nextParameter.getName()));
              searchParamChain.getUndeclaredExtensions().add(ext);

              ext = new ExtensionDt();
              ext.setUrl(ExtensionConstants.CONF_ADDITIONAL_PARAM_DESCRIPTION);
              ext.setValue(new StringDt(nextParameter.getDescription()));
              searchParamChain.getUndeclaredExtensions().add(ext);

              ext = new ExtensionDt();
              ext.setUrl(ExtensionConstants.CONF_ADDITIONAL_PARAM_TYPE);
              if (nextParameter.getParamType() != null) {
                ext.setValue(new CodeDt(nextParameter.getParamType().getCode()));
              }
              searchParamChain.getUndeclaredExtensions().add(ext);

              ext = new ExtensionDt();
              ext.setUrl(ExtensionConstants.CONF_ADDITIONAL_PARAM_REQUIRED);
              ext.setValue(new BooleanDt(nextParameter.isRequired()));
              searchParamChain.getUndeclaredExtensions().add(ext);

            }

          }
        }

        Collections.sort(resource.getOperation(), new Comparator<RestResourceOperation>() {
          @Override
          public int compare(RestResourceOperation theO1, RestResourceOperation theO2) {
            RestfulOperationTypeEnum o1 = theO1.getCode().getValueAsEnum();
            RestfulOperationTypeEnum o2 = theO2.getCode().getValueAsEnum();
            if (o1 == null && o2 == null) {
              return 0;
            }
            if (o1 == null) {
              return 1;
            }
            if (o2 == null) {
              return -1;
            }
            return o1.ordinal() - o2.ordinal();
          }
        });

      }
View Full Code Here

      resource.getType().setValue(def.getName());
      resource.getProfile().setId(new IdDt(def.getResourceProfile()));

      Map<String, Conformance.RestResourceSearchParam> nameToSearchParam = new HashMap<String, Conformance.RestResourceSearchParam>();
      for (BaseMethodBinding nextMethodBinding : next.getMethodBindings()) {
        RestfulOperationTypeEnum resOp = nextMethodBinding.getResourceOperationType();
        if (resOp != null) {
          if (resourceOps.contains(resOp) == false) {
            resourceOps.add(resOp);
            resource.addOperation().setCode(resOp);
          }
View Full Code Here

      TreeSet<String> includes = new TreeSet<String>();

      // Map<String, Conformance.RestResourceSearchParam> nameToSearchParam = new HashMap<String,
      // Conformance.RestResourceSearchParam>();
      for (BaseMethodBinding<?> nextMethodBinding : next.getMethodBindings()) {
        RestfulOperationTypeEnum resOp = nextMethodBinding.getResourceOperationType();
        if (resOp != null) {
          if (resourceOps.contains(resOp) == false) {
            resourceOps.add(resOp);
            resource.addOperation().setCode(resOp);
          }
        }

        RestfulOperationSystemEnum sysOp = nextMethodBinding.getSystemOperationType();
        if (sysOp != null) {
          if (systemOps.contains(sysOp) == false) {
            systemOps.add(sysOp);
            rest.addOperation().setCode(sysOp);
          }
        }

        if (nextMethodBinding instanceof SearchMethodBinding) {
          SearchMethodBinding searchMethodBinding = (SearchMethodBinding) nextMethodBinding;
          includes.addAll(searchMethodBinding.getIncludes());

          List<IParameter> params = searchMethodBinding.getParameters();
          List<SearchParameter> searchParameters = new ArrayList<SearchParameter>();
          for (IParameter nextParameter : params) {
            if ((nextParameter instanceof SearchParameter)) {
              searchParameters.add((SearchParameter) nextParameter);
            }
          }
          Collections.sort(searchParameters, new Comparator<SearchParameter>() {
            @Override
            public int compare(SearchParameter theO1, SearchParameter theO2) {
              if (theO1.isRequired() == theO2.isRequired()) {
                return theO1.getName().compareTo(theO2.getName());
              }
              if (theO1.isRequired()) {
                return -1;
              }
              return 1;
            }
          });
          if (searchParameters.isEmpty()) {
            continue;
          }
          boolean allOptional = searchParameters.get(0).isRequired() == false;

          RestQuery query = null;
          if (!allOptional) {
            query = rest.addQuery();
            query.getDocumentation().setValue(searchMethodBinding.getDescription());
            query.addUndeclaredExtension(false, ExtensionConstants.QUERY_RETURN_TYPE, new CodeDt(resourceName));
            for (String nextInclude : searchMethodBinding.getIncludes()) {
              query.addUndeclaredExtension(false, ExtensionConstants.QUERY_ALLOWED_INCLUDE, new StringDt(nextInclude));
            }
          }

          for (SearchParameter nextParameter : searchParameters) {

            String nextParamName = nextParameter.getName();

//            String chain = null;
            String nextParamUnchainedName = nextParamName;
            if (nextParamName.contains(".")) {
//              chain = nextParamName.substring(nextParamName.indexOf('.') + 1);
              nextParamUnchainedName = nextParamName.substring(0, nextParamName.indexOf('.'));
            }

            String nextParamDescription = nextParameter.getDescription();

            /*
             * If the parameter has no description, default to the one from the resource
             */
            if (StringUtils.isBlank(nextParamDescription)) {
              RuntimeSearchParam paramDef = def.getSearchParam(nextParamUnchainedName);
              if (paramDef != null) {
                nextParamDescription = paramDef.getDescription();
              }
            }

            RestResourceSearchParam param;
            if (query == null) {
              param = resource.addSearchParam();
            } else {
              param = query.addParameter();
              param.addUndeclaredExtension(false, ExtensionConstants.PARAM_IS_REQUIRED, new BooleanDt(nextParameter.isRequired()));
            }

            param.setName(nextParamName);
//            if (StringUtils.isNotBlank(chain)) {
//              param.addChain(chain);
//            }
            param.setDocumentation(nextParamDescription);
            param.setType(nextParameter.getParamType());
            for (Class<? extends IResource> nextTarget : nextParameter.getDeclaredTypes()) {
              RuntimeResourceDefinition targetDef = myRestfulServer.getFhirContext().getResourceDefinition(nextTarget);
              if (targetDef != null) {
                ResourceTypeEnum code = ResourceTypeEnum.VALUESET_BINDER.fromCodeString(targetDef.getName());
                if (code != null) {
                  param.addTarget(code);
                }
              }
            }
           
          }
        }

        Collections.sort(resource.getOperation(), new Comparator<RestResourceOperation>() {
          @Override
          public int compare(RestResourceOperation theO1, RestResourceOperation theO2) {
            RestfulOperationTypeEnum o1 = theO1.getCode().getValueAsEnum();
            RestfulOperationTypeEnum o2 = theO2.getCode().getValueAsEnum();
            if (o1 == null && o2 == null) {
              return 0;
            }
            if (o1 == null) {
              return 1;
            }
            if (o2 == null) {
              return -1;
            }
            return o1.ordinal() - o2.ordinal();
          }
        });

      }

View Full Code Here

TOP

Related Classes of ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.