*/
package org.opendaylight.yangtools.yang.parser.builder.impl;
+import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
import org.opendaylight.yangtools.yang.model.util.ExtendedType;
-import org.opendaylight.yangtools.yang.model.util.UnknownType;
import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
import org.opendaylight.yangtools.yang.parser.builder.util.AbstractTypeAwareBuilder;
import org.opendaylight.yangtools.yang.parser.builder.util.Comparators;
import org.opendaylight.yangtools.yang.parser.util.YangParseException;
+/**
+ * @deprecated Pre-Beryllium implementation, scheduled for removal.
+ */
+@Deprecated
public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder {
private SchemaPath schemaPath;
private List<RangeConstraint> ranges = Collections.emptyList();
public TypeDefinition<? extends TypeDefinition<?>> build() {
TypeDefinition<?> result;
ExtendedType.Builder typeBuilder;
- if ((type == null || type instanceof UnknownType) && typedef == null) {
- throw new YangParseException("Unresolved type: '" + qname.getLocalName() + "'.");
- }
- if (type == null || type instanceof UnknownType) {
- type = typedef.build();
+ if (type == null) {
+ if (typedef == null) {
+ throw new YangParseException("Unresolved type: '" + qname.getLocalName() + "'.");
+ } else {
+ type = typedef.build();
+ }
}
- typeBuilder = new ExtendedType.Builder(qname, type, description, reference, schemaPath);
+ typeBuilder = ExtendedType.builder(qname, type, Optional.fromNullable(description),
+ Optional.fromNullable(reference), schemaPath);
typeBuilder.status(status);
typeBuilder.units(units);
typeBuilder.defaultValue(defaultValue);
this.defaultValue = defaultValue;
}
- @Override
- public List<UnknownSchemaNodeBuilder> getUnknownNodes() {
- return Collections.emptyList();
- }
-
@Override
public List<RangeConstraint> getRanges() {
return ranges;
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
- result = prime * result + ((schemaPath == null) ? 0 : schemaPath.hashCode());
+ result = prime * result + Objects.hashCode(schemaPath);
return result;
}