
com.legstar.coxb.impl.AbstractArrayAlphaNumericBinding Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of legstar-distribution
Show all versions of legstar-distribution
Used to create a single distribution for the entire LegStar project.
The newest version!
/*******************************************************************************
* Copyright (c) 2011 LegSem.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* LegSem - initial API and implementation
******************************************************************************/
package com.legstar.coxb.impl;
import java.util.ArrayList;
import java.util.List;
import com.legstar.coxb.CobolElement;
import com.legstar.coxb.ICobolComplexBinding;
import com.legstar.coxb.host.HostException;
import com.legstar.coxb.common.CArrayBinding;
/**
* Generic class for alphanumeric arrays bindings.
*
*/
public abstract class AbstractArrayAlphaNumericBinding extends CArrayBinding {
/** The current list for this array. */
private List < String > mList = null;
/**
* Constructor for a cobol element to java binding.
*
* @param bindingName the identifier for this binding
* @param jaxbName the name of the bound java property
* @param jaxbType the type of the bound java property
* @param cobolAnnotations the cobol annotations for this element
* @param parentBinding a reference to the parent binding if any
*/
public AbstractArrayAlphaNumericBinding(
final String bindingName,
final String jaxbName,
final Class < ? > jaxbType,
final CobolElement cobolAnnotations,
final ICobolComplexBinding parentBinding) {
super(bindingName, jaxbName, jaxbType, cobolAnnotations, parentBinding);
}
/**
* @return the List of items
*/
public List < String > getStringList() {
return mList;
}
/**
* @param list the items List to set
*/
public void setStringList(
final List < String > list) {
mList = list;
}
/** {@inheritDoc} */
public Object getObjectValue(
final Class < ? > type) throws HostException {
if (type.equals(String.class)) {
return mList;
} else {
throw new HostException("Attempt to get binding " + getBindingName()
+ " as an incompatible type " + type);
}
}
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
public void setObjectValue(final Object value) throws HostException {
if (value == null) {
mList = null;
return;
}
if (value instanceof List) {
if (((List >) value).size() == 0) {
mList = new ArrayList < String >();
return;
}
/* We assume all items will have the same type as the first one.
* The unchecked cast might break at runtime. */
Object item = ((List >) value).get(0);
if (item instanceof String) {
mList = (List ) value;
return;
}
}
throw new HostException("Attempt to set binding " + getBindingName()
+ " from an incompatible value " + value);
}
/** {@inheritDoc} */
public boolean isSet() {
return (mList != null);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy