// Path: camel-milo/src/main/java/org/apache/camel/component/milo/NamespaceId.java
// public class NamespaceId {
// 	private final String uri;
// 	private final UShort numeric;
// 
// 	public NamespaceId(final String uri) {
// 		requireNonNull(uri);
// 
// 		this.uri = uri;
// 		this.numeric = null;
// 	}
// 
// 	public NamespaceId(final UShort numeric) {
// 		requireNonNull(numeric);
// 
// 		this.uri = null;
// 		this.numeric = numeric;
// 	}
// 
// 	public String getUri() {
// 		return this.uri;
// 	}
// 
// 	public UShort getNumeric() {
// 		return this.numeric;
// 	}
// 
// 	public boolean isNumeric() {
// 		return this.numeric != null;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		if (isNumeric()) {
// 			return String.format("[Namespace - numeric: %s]", this.numeric);
// 		} else {
// 			return String.format("[Namespace - URI: %s]", this.uri);
// 		}
// 	}
// 
// 	public Serializable getValue() {
// 		return this.uri != null ? this.uri : this.numeric;
// 	}
// 
// 	public static NamespaceId fromExpandedNodeId(final ExpandedNodeId id) {
// 		if (id == null) {
// 			return null;
// 		}
// 
// 		if (id.getNamespaceUri() != null) {
// 			return new NamespaceId(id.getNamespaceUri());
// 		}
// 		if (id.getNamespaceIndex() != null) {
// 			return new NamespaceId(id.getNamespaceIndex());
// 		}
// 
// 		throw new IllegalStateException(String.format("Unknown namespace type"));
// 	}
// }
// 
// Path: camel-milo/src/main/java/org/apache/camel/component/milo/PartialNodeId.java
// public class PartialNodeId {
// 
// 	private IdType type;
// 
// 	private final Serializable id;
// 
// 	public PartialNodeId(final int id) {
// 		this(uint(id));
// 	}
// 
// 	public PartialNodeId(final UInteger id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public PartialNodeId(final String id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public PartialNodeId(final UUID id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public PartialNodeId(final ByteString id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public NodeId toNodeId(final int namespaceIndex) {
// 		if (this.id instanceof String) {
// 			return new NodeId(namespaceIndex, (String) this.id);
// 		} else if (this.id instanceof UInteger) {
// 			return new NodeId(ushort(namespaceIndex), (UInteger) this.id);
// 		} else if (this.id instanceof ByteString) {
// 			return new NodeId(namespaceIndex, (ByteString) this.id);
// 		} else if (this.id instanceof UUID) {
// 			return new NodeId(namespaceIndex, (UUID) this.id);
// 		}
// 		throw new IllegalStateException("Invalid id type: " + this.id);
// 	}
// 
// 	public NodeId toNodeId(final UShort namespaceIndex) {
// 		if (this.id instanceof String) {
// 			return new NodeId(namespaceIndex, (String) this.id);
// 		} else if (this.id instanceof UInteger) {
// 			return new NodeId(namespaceIndex, (UInteger) this.id);
// 		} else if (this.id instanceof ByteString) {
// 			return new NodeId(namespaceIndex, (ByteString) this.id);
// 		} else if (this.id instanceof UUID) {
// 			return new NodeId(namespaceIndex, (UUID) this.id);
// 		}
// 		throw new IllegalStateException("Invalid id type: " + this.id);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return MoreObjects.toStringHelper(this).add("type", this.type).add("id", this.id).toString();
// 	}
// 
// 	public Serializable getValue() {
// 		return this.id;
// 	}
// 
// 	public static PartialNodeId fromExpandedNodeId(final ExpandedNodeId node) {
// 		if (node == null) {
// 			return null;
// 		}
// 
// 		final Object value = node.getIdentifier();
// 
// 		if (value instanceof String) {
// 			return new PartialNodeId((String) value);
// 		} else if (value instanceof UInteger) {
// 			return new PartialNodeId((UInteger) value);
// 		} else if (value instanceof UUID) {
// 			return new PartialNodeId((UUID) value);
// 		} else if (value instanceof ByteString) {
// 			return new PartialNodeId((ByteString) value);
// 		}
// 
// 		throw new IllegalStateException(String.format("Unknown node id type: " + value));
// 	}
// }


import org.apache.camel.component.milo.NamespaceId;
import org.apache.camel.component.milo.PartialNodeId;
/*
 * Copyright (C) 2016 Jens Reimann <jreimann@redhat.com>
 *
 * 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 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.camel.component.milo.client;


public interface MiloClientItemConfiguration {
	public NamespaceId makeNamespaceId();

// Path: camel-milo/src/main/java/org/apache/camel/component/milo/NamespaceId.java
// public class NamespaceId {
// 	private final String uri;
// 	private final UShort numeric;
// 
// 	public NamespaceId(final String uri) {
// 		requireNonNull(uri);
// 
// 		this.uri = uri;
// 		this.numeric = null;
// 	}
// 
// 	public NamespaceId(final UShort numeric) {
// 		requireNonNull(numeric);
// 
// 		this.uri = null;
// 		this.numeric = numeric;
// 	}
// 
// 	public String getUri() {
// 		return this.uri;
// 	}
// 
// 	public UShort getNumeric() {
// 		return this.numeric;
// 	}
// 
// 	public boolean isNumeric() {
// 		return this.numeric != null;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		if (isNumeric()) {
// 			return String.format("[Namespace - numeric: %s]", this.numeric);
// 		} else {
// 			return String.format("[Namespace - URI: %s]", this.uri);
// 		}
// 	}
// 
// 	public Serializable getValue() {
// 		return this.uri != null ? this.uri : this.numeric;
// 	}
// 
// 	public static NamespaceId fromExpandedNodeId(final ExpandedNodeId id) {
// 		if (id == null) {
// 			return null;
// 		}
// 
// 		if (id.getNamespaceUri() != null) {
// 			return new NamespaceId(id.getNamespaceUri());
// 		}
// 		if (id.getNamespaceIndex() != null) {
// 			return new NamespaceId(id.getNamespaceIndex());
// 		}
// 
// 		throw new IllegalStateException(String.format("Unknown namespace type"));
// 	}
// }
// 
// Path: camel-milo/src/main/java/org/apache/camel/component/milo/PartialNodeId.java
// public class PartialNodeId {
// 
// 	private IdType type;
// 
// 	private final Serializable id;
// 
// 	public PartialNodeId(final int id) {
// 		this(uint(id));
// 	}
// 
// 	public PartialNodeId(final UInteger id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public PartialNodeId(final String id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public PartialNodeId(final UUID id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public PartialNodeId(final ByteString id) {
// 		requireNonNull(id);
// 		this.id = id;
// 	}
// 
// 	public NodeId toNodeId(final int namespaceIndex) {
// 		if (this.id instanceof String) {
// 			return new NodeId(namespaceIndex, (String) this.id);
// 		} else if (this.id instanceof UInteger) {
// 			return new NodeId(ushort(namespaceIndex), (UInteger) this.id);
// 		} else if (this.id instanceof ByteString) {
// 			return new NodeId(namespaceIndex, (ByteString) this.id);
// 		} else if (this.id instanceof UUID) {
// 			return new NodeId(namespaceIndex, (UUID) this.id);
// 		}
// 		throw new IllegalStateException("Invalid id type: " + this.id);
// 	}
// 
// 	public NodeId toNodeId(final UShort namespaceIndex) {
// 		if (this.id instanceof String) {
// 			return new NodeId(namespaceIndex, (String) this.id);
// 		} else if (this.id instanceof UInteger) {
// 			return new NodeId(namespaceIndex, (UInteger) this.id);
// 		} else if (this.id instanceof ByteString) {
// 			return new NodeId(namespaceIndex, (ByteString) this.id);
// 		} else if (this.id instanceof UUID) {
// 			return new NodeId(namespaceIndex, (UUID) this.id);
// 		}
// 		throw new IllegalStateException("Invalid id type: " + this.id);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return MoreObjects.toStringHelper(this).add("type", this.type).add("id", this.id).toString();
// 	}
// 
// 	public Serializable getValue() {
// 		return this.id;
// 	}
// 
// 	public static PartialNodeId fromExpandedNodeId(final ExpandedNodeId node) {
// 		if (node == null) {
// 			return null;
// 		}
// 
// 		final Object value = node.getIdentifier();
// 
// 		if (value instanceof String) {
// 			return new PartialNodeId((String) value);
// 		} else if (value instanceof UInteger) {
// 			return new PartialNodeId((UInteger) value);
// 		} else if (value instanceof UUID) {
// 			return new PartialNodeId((UUID) value);
// 		} else if (value instanceof ByteString) {
// 			return new PartialNodeId((ByteString) value);
// 		}
// 
// 		throw new IllegalStateException(String.format("Unknown node id type: " + value));
// 	}
// }


// Path: camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientItemConfiguration.java
import org.apache.camel.component.milo.NamespaceId;
import org.apache.camel.component.milo.PartialNodeId;

/*
 * Copyright (C) 2016 Jens Reimann <jreimann@redhat.com>
 *
 * 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 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.camel.component.milo.client;


public interface MiloClientItemConfiguration {
	public NamespaceId makeNamespaceId();

	public PartialNodeId makePartialNodeId();