blob: 9827c11d7e3a4ad7b6c870020d9d1c901df67d6e [file] [log] [blame]
/*******************************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
******************************************************************************/
package org.apache.olingo.odata2.core.uri;
import java.util.ArrayList;
/**
*
*/
public enum UriType {
/**
* Service document
*/
URI0(SystemQueryOption.$format),
/**
* Entity set
*/
URI1(SystemQueryOption.$format, SystemQueryOption.$filter, SystemQueryOption.$inlinecount,
SystemQueryOption.$orderby, SystemQueryOption.$skiptoken, SystemQueryOption.$skip, SystemQueryOption.$top,
SystemQueryOption.$expand, SystemQueryOption.$select),
/**
* Entity set with key predicate
*/
URI2(SystemQueryOption.$format, SystemQueryOption.$filter, SystemQueryOption.$expand, SystemQueryOption.$select),
/**
* Complex property of an entity
*/
URI3(SystemQueryOption.$format),
/**
* Simple property of a complex property of an entity
*/
URI4(SystemQueryOption.$format),
/**
* Simple property of an entity
*/
URI5(SystemQueryOption.$format),
/**
* Navigation property of an entity with target multiplicity '1' or '0..1'
*/
URI6A(SystemQueryOption.$format, SystemQueryOption.$filter, SystemQueryOption.$expand, SystemQueryOption.$select),
/**
* Navigation property of an entity with target multiplicity '*'
*/
URI6B(SystemQueryOption.$format, SystemQueryOption.$filter, SystemQueryOption.$inlinecount,
SystemQueryOption.$orderby, SystemQueryOption.$skiptoken, SystemQueryOption.$skip, SystemQueryOption.$top,
SystemQueryOption.$expand, SystemQueryOption.$select),
/**
* Link to a single entity
*/
URI7A(SystemQueryOption.$format, SystemQueryOption.$filter),
/**
* Link to multiple entities
*/
URI7B(SystemQueryOption.$format, SystemQueryOption.$filter, SystemQueryOption.$inlinecount,
SystemQueryOption.$orderby, SystemQueryOption.$skiptoken, SystemQueryOption.$skip, SystemQueryOption.$top),
/**
* Metadata document
*/
URI8(),
/**
* Batch request
*/
URI9(),
/**
* Function import returning a single instance of an entity type
*/
URI10(SystemQueryOption.$format),
/**
* Function import returning an entity set
*/
URI10a(SystemQueryOption.$format, SystemQueryOption.$filter, SystemQueryOption.$inlinecount,
SystemQueryOption.$orderby, SystemQueryOption.$skiptoken, SystemQueryOption.$skip, SystemQueryOption.$top,
SystemQueryOption.$expand, SystemQueryOption.$select),
/**
* Function import returning a collection of complex-type instances
*/
URI11(SystemQueryOption.$format),
/**
* Function import returning a single instance of a complex type
*/
URI12(SystemQueryOption.$format),
/**
* Function import returning a collection of primitive-type instances
*/
URI13(SystemQueryOption.$format),
/**
* Function import returning a single instance of a primitive type
*/
URI14(SystemQueryOption.$format),
/**
* Count of an entity set
*/
URI15(SystemQueryOption.$filter, SystemQueryOption.$orderby, SystemQueryOption.$skip, SystemQueryOption.$top),
/**
* Count of a single entity
*/
URI16(SystemQueryOption.$filter),
/**
* Media resource of an entity
*/
URI17(SystemQueryOption.$format, SystemQueryOption.$filter),
/**
* Count of link to a single entity
*/
URI50A(SystemQueryOption.$filter),
/**
* Count of links to multiple entities
*/
URI50B(SystemQueryOption.$filter, SystemQueryOption.$orderby, SystemQueryOption.$skip, SystemQueryOption.$top);
private ArrayList<SystemQueryOption> whiteList = new ArrayList<SystemQueryOption>();
private UriType(final SystemQueryOption... compatibleQueryOptions) {
for (SystemQueryOption queryOption : compatibleQueryOptions) {
whiteList.add(queryOption);
}
}
public boolean isCompatible(final SystemQueryOption queryOption) {
return whiteList.contains(queryOption);
}
}