package games.strategy.triplea.delegate;
import games.strategy.engine.data.GameData;
import games.strategy.engine.data.PlayerID;
import games.strategy.engine.delegate.IDelegateBridge;
import games.strategy.triplea.attachments.TechAttachment;
public class GenericTechAdvance extends TechAdvance {
private static final long serialVersionUID = -5985281030083508185L;
private final TechAdvance m_advance;
public GenericTechAdvance(final String name, final TechAdvance techAdvance, final GameData data) {
super(name, data);
m_advance = techAdvance;
}
@Override
public String getProperty() {
if (m_advance != null) {
return m_advance.getProperty();
} else {
return getName();
}
}
@Override
public void perform(final PlayerID id, final IDelegateBridge bridge) {
if (m_advance != null) {
m_advance.perform(id, bridge);
}
}
public TechAdvance getAdvance() {
return m_advance;
}
@Override
public boolean hasTech(final TechAttachment ta) {
if (m_advance != null) {
return m_advance.hasTech(ta);
}
// this can be null!!!
final Boolean has = ta.hasGenericTech(getName());
return (has == null ? false : has);
}
}