package com.netifera.platform.net.dns.internal.ui;
import com.netifera.platform.api.model.IEntity;
import com.netifera.platform.api.model.layers.ITreeLayerProvider;
import com.netifera.platform.net.dns.model.AAAARecordEntity;
import com.netifera.platform.net.dns.model.ARecordEntity;
import com.netifera.platform.net.dns.model.DNSRecordEntity;
import com.netifera.platform.net.dns.model.DomainEntity;
import com.netifera.platform.net.dns.model.EmailAddressEntity;
import com.netifera.platform.net.dns.model.PTRRecordEntity;
public class DomainsTreeLayerProvider implements ITreeLayerProvider {
public IEntity[] getParents(IEntity entity) {
if(entity instanceof DomainEntity) {
if (((DomainEntity)entity).getParent() != null)
return new IEntity[] {((DomainEntity)entity).getParent()};
} else if(entity instanceof DNSRecordEntity) {
if (entity instanceof ARecordEntity || entity instanceof AAAARecordEntity || entity instanceof PTRRecordEntity)
return new IEntity[0];
DomainEntity domain = ((DNSRecordEntity)entity).getDomain();
return new IEntity[] { domain };
} else if(entity instanceof EmailAddressEntity) {
return new IEntity[] {((EmailAddressEntity) entity).getDomain()};
}
return new IEntity[0];
}
public boolean isRealmRoot(IEntity entity) {
return entity instanceof DomainEntity;
}
public String getLayerName() {
return "Domains";
}
public boolean isDefaultEnabled() {
return true;
}
}