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

org.atemsource.atem.utility.binding.version.VersionFilter Maven / Gradle / Ivy

package org.atemsource.atem.utility.binding.version;

import org.atemsource.atem.api.attribute.Attribute;
import org.atemsource.atem.api.attribute.JavaMetaData;
import org.atemsource.atem.utility.binding.AttributeFilter;
import org.atemsource.atem.utility.transform.api.annotation.Version;
import org.atemsource.atem.utility.transform.impl.version.VersionNumber;
import org.atemsource.atem.utility.transform.impl.version.VersionResolver;


public class VersionFilter implements AttributeFilter
{

	private final VersionNumber versionNumber;

	private final VersionResolver versionResolver;

	public VersionFilter(String version, VersionResolver versionResolver)
	{
		super();
		this.versionNumber = versionResolver.create(version);
		this.versionResolver = versionResolver;
	}

	public VersionFilter(VersionNumber versionNumber, VersionResolver versionResolver)
	{
		super();
		this.versionNumber = versionNumber;
		this.versionResolver = versionResolver;
	}

	@Override
	public boolean isExcluded(Attribute attribute)
	{
		if (attribute instanceof JavaMetaData)
		{
			JavaMetaData javaAttribute = (JavaMetaData) attribute;
			Version version = javaAttribute.getAnnotation(Version.class);
			if (version == null)
			{
				return false;
			}
			else
			{
				VersionNumber from = versionResolver.create(version.from());
				VersionNumber until = versionResolver.create(version.until());
				boolean exclude = !versionNumber.isBetween(from, until);
				return exclude;
			}
		}
		else
		{
			return false;
		}
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy