+++ /dev/null
-/*
- * Copyright 2005-2011 the original author or authors.
- *
- * 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.wamblee.xmlrouter.impl;
-
-import org.wamblee.xmlrouter.common.Id;
-import org.wamblee.xmlrouter.config.DocumentType;
-import org.wamblee.xmlrouter.config.Filter;
-import org.wamblee.xmlrouter.config.Transformation;
-
-/**
- * Represents a single configuration set of a single configuration client of the
- * XML router.
- *
- * @author Erik Brakkee
- */
-public class SingleRouterConfig implements ExtendedRouterConfig {
-
- public static final class DocumentConfig extends ConfigImpl<DocumentType> {
- public DocumentConfig(String aId) {
- super(DocumentType.class, aId);
- }
-
- public DocumentConfig(DocumentConfig aConfig) {
- super(aConfig);
- }
-
- @Override
- public DocumentType wrap(DocumentType aT) {
- return new RobustDocumentType(aT);
- }
- }
-
- public static final class TransformationConfig extends
- ConfigImpl<Transformation> {
- public TransformationConfig(String aId) {
- super(Transformation.class, aId);
- }
-
- public TransformationConfig(TransformationConfig aConfig) {
- super(aConfig);
- }
-
- @Override
- public Transformation wrap(Transformation aTransformation) {
- return new RobustTransformation(aTransformation);
- }
- }
-
- public static final class FilterConfig extends ConfigImpl<Filter> {
- public FilterConfig(String aId) {
- super(Filter.class, aId);
- }
-
- public FilterConfig(FilterConfig aConfig) {
- super(aConfig);
- }
-
- @Override
- public Filter wrap(Filter aFilter) {
- return new RobustFilter("", aFilter);
- }
- }
-
- private String prefix;
-
- private DocumentConfig documentTypes;
- private TransformationConfig transformations;
- private FilterConfig filters;
-
- /**
- * Constructs a router configuration.
- *
- * @param aPrefix
- * Unique id for this configuration.
- */
- public SingleRouterConfig(String aPrefix) {
- prefix = aPrefix;
- documentTypes = new DocumentConfig(aPrefix + ".documenttypes");
- transformations = new TransformationConfig(aPrefix + ".transformations");
- filters = new FilterConfig(aPrefix + ".filters");
- }
-
- public SingleRouterConfig(SingleRouterConfig aConfig) {
- prefix = aConfig.prefix;
- documentTypes = new DocumentConfig(aConfig.documentTypes);
- transformations = new TransformationConfig(aConfig.transformations);
- filters = new FilterConfig(aConfig.filters);
- }
-
- @Override
- public Id<RouterConfig> getId() {
- return new Id<RouterConfig>(prefix);
- }
-
- public String getPrefix() {
- return prefix;
- }
-
- @Override
- public Config<DocumentType> documentTypeConfig() {
- return documentTypes;
- }
-
- @Override
- public Config<Transformation> transformationConfig() {
- return transformations;
- }
-
- @Override
- public Config<Filter> filterConfig() {
- return filters;
- }
-
- @Override
- public boolean equals(Object aObj) {
- if (aObj == null) {
- return false;
- }
- if (!(aObj instanceof SingleRouterConfig)) {
- return false;
- }
- SingleRouterConfig obj = (SingleRouterConfig) aObj;
-
- return documentTypes.equals(obj.documentTypes) &&
- transformations.equals(obj.transformations) &&
- filters.equals(obj.filters);
- }
-
- @Override
- public int hashCode() {
- return documentTypes.hashCode() + transformations.hashCode() +
- filters.hashCode();
- }
-}