blob: 987ac02c27e167ceff105aa25d14935f8a81db79 [file] [log] [blame]
/*
* Copyright 2009-2010 by The Regents of the University of California
* Licensed 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 from
*
* 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 edu.uci.ics.asterix.runtime.pointables.base;
import edu.uci.ics.asterix.om.types.AOrderedListType;
import edu.uci.ics.asterix.om.types.ARecordType;
import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnorderedListType;
import edu.uci.ics.asterix.om.types.BuiltinType;
import edu.uci.ics.asterix.om.types.IAType;
/**
* This class serves as the repository for the default record type and list type
* fields in the open part, e.g., a "record" (nested) field in the open part is
* always a fully open one, and a "list" field in the open part is always a list
* of "ANY".
*
*/
public class DefaultOpenFieldType {
// nested open field rec type
public static ARecordType NESTED_OPEN_RECORD_TYPE = new ARecordType("nested-open", new String[] {},
new IAType[] {}, true);
// nested open list type
public static AOrderedListType NESTED_OPEN_AORDERED_LIST_TYPE = new AOrderedListType(BuiltinType.ANY,
"nested-ordered-list");
// nested open list type
public static AUnorderedListType NESTED_OPEN_AUNORDERED_LIST_TYPE = new AUnorderedListType(BuiltinType.ANY,
"nested-unordered-list");
public static IAType getDefaultOpenFieldType(ATypeTag tag) {
if (tag.equals(ATypeTag.RECORD))
return NESTED_OPEN_RECORD_TYPE;
if (tag.equals(ATypeTag.ORDEREDLIST))
return NESTED_OPEN_AORDERED_LIST_TYPE;
if (tag.equals(ATypeTag.UNORDEREDLIST))
return NESTED_OPEN_AUNORDERED_LIST_TYPE;
else
return null;
}
}