blob: b3a3f1686328fa5fdd247aee747f4d1eb5109c24 [file] [log] [blame]
/*------------------------------------------------------------------------------
-
- Copyright (c) 2015-2016 University of Padova, ITALY - Intecs SpA
- All rights reserved. This program and the accompanying materials
- are made available under the terms of the Eclipse Public License v2.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v20.html
-
- Contributors:
-
- Alessandro Zovi azovi@math.unipd.it
- Stefano Puri stefano.puri@intecs.it
- Laura Baracchi laura.baracchi@intecs.it
- Nicholas Pacini nicholas.pacini@intecs.it
-
- Initial API and implementation and/or initial documentation
------------------------------------------------------------------------------*/package org.polarsys.chess.multicore.model;
import java.util.Arrays;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.polarsys.chess.chessmlprofile.Predictability.DeploymentConfiguration.HardwareBaseline.CH_HwProcessor;
/**
* The Class CHCore.
*
* @author Alessandro Zovi
*
* CHCore represents the tuple <processor, core>.
*/
public final class CHCore {
/** The processor. */
private CH_HwProcessor processor;
/** The name. */
private String name;
/**
* Instantiates a new CH core.
*
* @param processor the processor
* @param coreName the core name
*/
public CHCore(CH_HwProcessor processor, String coreName) {
if (processor.getBase_InstanceSpecification() == null)
throw new RuntimeException("Core can be instanced only by an InstanceSpecification!");
this.processor = processor;
this.name = coreName;
}
/**
* Gets the processor.
*
* @return the processor
*/
public CH_HwProcessor getProcessor() {
return processor;
}
/**
* Gets the name.
*
* @return the name
*/
public String getName() {
return name;
}
/**
* Gets the qualified name.
*
* @return the qualified name
*/
public String getQualifiedName() {
StringBuilder sb = new StringBuilder();
return sb.append(processor.getBase_InstanceSpecification().getName()).append('_').append(name).toString();
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if(!(obj instanceof CHCore)) return false;
if(obj == this) return true;
CHCore that = (CHCore) obj;
return processor.getBase_InstanceSpecification().getName().equals(that.processor.getBase_InstanceSpecification().getName()) && name.equals(that.name);
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return getQualifiedName();
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return Arrays.hashCode(new Object[] {
processor.getBase_InstanceSpecification().getName().hashCode(),
name.hashCode(),
});
}
/**
* Gets the processor instance.
*
* @return the processor instance
*/
public InstanceSpecification getProcessorInstance() {
return processor.getBase_InstanceSpecification();
}
}