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

de.retest.ui.descriptors.RootElement Maven / Gradle / Ivy

There is a newer version: 6.0.0
Show newest version
package de.retest.ui.descriptors;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;

import de.retest.ui.image.Screenshot;
import de.retest.ui.review.ActionChangeSet;

@XmlRootElement
@XmlAccessorType( XmlAccessType.FIELD )
public class RootElement extends Element {

	private static final long serialVersionUID = 2L;

	@XmlAttribute
	private final int screenId;
	@XmlAttribute
	private final String screen;
	@XmlAttribute
	private final String title;

	@SuppressWarnings( "unused" )
	private RootElement() {
		// for JAXB
		screenId = 0;
		screen = null;
		title = null;
	}

	public RootElement( final String retestId, final IdentifyingAttributes identifyingAttributes,
			final Attributes attributes, final Screenshot screenshot, final List containedComponents,
			final String screen, final int screenId, final String title ) {
		super( retestId, identifyingAttributes, attributes, containedComponents );
		setScreenshot( screenshot );
		this.screen = screen;
		this.screenId = screenId;
		this.title = title;
	}

	public String getScreen() {
		return screen;
	}

	public int getScreenId() {
		return screenId;
	}

	public String getTitle() {
		return title;
	}

	@Override
	public RootElement applyChanges( final ActionChangeSet actionChangeSet ) {
		if ( actionChangeSet == null ) {
			return this;
		}

		final IdentifyingAttributes newIdentAttributes;
		newIdentAttributes = identifyingAttributes
				.applyChanges( actionChangeSet.getIdentAttributeChanges().getAll( identifyingAttributes ) );

		final Attributes newAttributes =
				attributes.applyChanges( actionChangeSet.getAttributesChanges().getAll( identifyingAttributes ) );

		final List newContainedComponents = createNewComponentList( actionChangeSet, newIdentAttributes );

		return new RootElement( retestId, newIdentAttributes, newAttributes, screenshot, newContainedComponents, screen,
				screenId, title );
	}

	public static List getScreenshots( final List windows ) {
		final List result = new ArrayList<>();
		for ( final RootElement rootElement : windows ) {
			result.add( rootElement.getScreenshot() );
		}
		return result;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy