All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.databene.edifatto.util.EdiRecursionModel Maven / Gradle / Ivy

Go to download

'Edifatto' is an open source software library for parsing, generating and verifying EDIFACT and X12 documents written by Volker Bergmann.

There is a newer version: 3.0.1
Show newest version
/*
 * Copyright (C) 2013-2015 Volker Bergmann ([email protected]).
 * All rights reserved.
 *
 * 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.databene.edifatto.util;

/**
 * {@link RecursionModel} implementation for EDI data structures.
 * Created: 23.10.2013 17:44:49
 * @since 1.0
 * @author Volker Bergmann
 */

public class EdiRecursionModel implements RecursionModel {

	@Override
	public int getChildCount(Object parent) {
		if (parent instanceof Parent)
			return ((Parent) parent).getChildCount();
		else
			return 0;
	}

	@Override
	public Object getChild(Object parent, int index) {
		if (parent instanceof Parent)
			return ((Parent) parent).getChild(index);
		else
			throw new UnsupportedOperationException("No child elements supported for " + parent.getClass());
	}

	@Override
	public String format(Object node) {
		Class type = node.getClass();
		if (type.isArray())
			return type.getComponentType().getSimpleName() + "[]";
		else if (type == String.class)
			return "'" + node.toString() + "'";
		else
			return node.toString();
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy