Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 示例OSLC代码,带有一个“;其中;条款_Java_Oslc - Fatal编程技术网

Java 示例OSLC代码,带有一个“;其中;条款

Java 示例OSLC代码,带有一个“;其中;条款,java,oslc,Java,Oslc,任何人都可以为服务类提供带有where子句的示例OSLC代码吗? 我最近才开始使用OSLC 以下是我尝试过的代码(无效): @GET @生成({OslcMediaType.APPLICATION_RDF_XML,OslcMediaType.APPLICATION_XML,OslcMediaType.APPLICATION_JSON}) 公共项目[]getChangeRequests(@QueryParam(“oslc.where”)最终字符串where, @QueryParam(“oslc.p

任何人都可以为服务类提供带有
where
子句的示例OSLC代码吗? 我最近才开始使用OSLC


以下是我尝试过的代码(无效):

@GET
@生成({OslcMediaType.APPLICATION_RDF_XML,OslcMediaType.APPLICATION_XML,OslcMediaType.APPLICATION_JSON})
公共项目[]getChangeRequests(@QueryParam(“oslc.where”)最终字符串where,
@QueryParam(“oslc.prefix”)最终字符串前缀)
{    
最终列表<项目>结果=新的ArrayList();
映射前缀映射;
尝试
{     
QueryUtils.parseSearchTerms(其中);
prefixMap=QueryUtils.parsePrefixes(前缀);
where子句where子句=QueryUtils.parseWhere(where,prefixMap);
}
捕获(解析异常)
{
e、 printStackTrace();
}
最终项目[]changeRequests=Persistence.getChangeRequestsForProject();
对于(最终项目变更请求:变更请求)
{
changeRequest.setServiceProvider(ServiceProviderSingleton.getServiceProviderURI());
结果。添加(变更请求);
}
返回results.toArray(新项目[results.size()]);
}

我只是想发布一段工作代码。这是:

prefixMap = QueryUtils.parsePrefixes(prefix);
WhereClause whereClause = QueryUtils.parseWhere(where, prefixMap);

PName property = null;
String value ="";
for (SimpleTerm term : whereClause.children())
{
    ComparisonTerm comparison = (ComparisonTerm)term;
    String operator;

    switch (comparison.operator())
    {
        case EQUALS:
            operator = "equals";
            break;
        case NOT_EQUALS:
            operator = "notequals";
            break;
        case LESS_THAN:
            operator = "lessthan";
            break;
        case LESS_EQUALS:
            operator = "lessthaneq";
            break;
        case GREATER_THAN:
            operator = "greaterthan";
            break;
        default:
        case GREATER_EQUALS:
            operator = "greaterhaneq";
            break;
    }         
    property = comparison.property();       
    Value operand = comparison.operand();
    value = operand.toString();
    switch (operand.type())
    {
        case STRING:
        case URI_REF:
            value = value.substring(1, value.length() - 1);
            break;
        case BOOLEAN:
        case DECIMAL:
            break;
        default:
        throw new WebApplicationException
        (new UnsupportedOperationException("Unsupported oslc.where comparison operand: " + value),Status.BAD_REQUEST);                
     }
 }
 String compareString=property.toString().substring(property.toString().indexOf(":")+1);
 String val="get" + compareString.substring(0,1).toUpperCase() +compareString.substring(1);
 final Project[] changeRequests = Persistence.getChangeRequestsForProject();
 for (final Project changeRequest : changeRequests)
 {
     changeRequest.setServiceProvider(ServiceProviderSingleton.getServiceProviderURI());
     Method m=changeRequest.getClass().getMethod(val, null);
     if((m.invoke(changeRequest).toString().equalsIgnoreCase(value)))
     {
         results.add(changeRequest);
     }
 }

有人可以在投票时对问题的改进发表意见吗?
prefixMap = QueryUtils.parsePrefixes(prefix);
WhereClause whereClause = QueryUtils.parseWhere(where, prefixMap);

PName property = null;
String value ="";
for (SimpleTerm term : whereClause.children())
{
    ComparisonTerm comparison = (ComparisonTerm)term;
    String operator;

    switch (comparison.operator())
    {
        case EQUALS:
            operator = "equals";
            break;
        case NOT_EQUALS:
            operator = "notequals";
            break;
        case LESS_THAN:
            operator = "lessthan";
            break;
        case LESS_EQUALS:
            operator = "lessthaneq";
            break;
        case GREATER_THAN:
            operator = "greaterthan";
            break;
        default:
        case GREATER_EQUALS:
            operator = "greaterhaneq";
            break;
    }         
    property = comparison.property();       
    Value operand = comparison.operand();
    value = operand.toString();
    switch (operand.type())
    {
        case STRING:
        case URI_REF:
            value = value.substring(1, value.length() - 1);
            break;
        case BOOLEAN:
        case DECIMAL:
            break;
        default:
        throw new WebApplicationException
        (new UnsupportedOperationException("Unsupported oslc.where comparison operand: " + value),Status.BAD_REQUEST);                
     }
 }
 String compareString=property.toString().substring(property.toString().indexOf(":")+1);
 String val="get" + compareString.substring(0,1).toUpperCase() +compareString.substring(1);
 final Project[] changeRequests = Persistence.getChangeRequestsForProject();
 for (final Project changeRequest : changeRequests)
 {
     changeRequest.setServiceProvider(ServiceProviderSingleton.getServiceProviderURI());
     Method m=changeRequest.getClass().getMethod(val, null);
     if((m.invoke(changeRequest).toString().equalsIgnoreCase(value)))
     {
         results.add(changeRequest);
     }
 }