use of org.apache.cayenne.configuration.DataNodeDescriptor in project cayenne by apache.
the class DataNodeValidator method validateName.
void validateName(DataNodeDescriptor node, ValidationResult validationResult) {
String name = node.getName();
if (Util.isEmptyString(name)) {
addFailure(validationResult, node, "Unnamed DataNode");
return;
}
DataChannelDescriptor dataChannelDescriptor = node.getDataChannelDescriptor();
// check for duplicate names in the parent context
for (DataNodeDescriptor otherNode : dataChannelDescriptor.getNodeDescriptors()) {
if (otherNode == node) {
continue;
}
if (name.equals(otherNode.getName())) {
addFailure(validationResult, node, "Duplicate DataNode name: %s", name);
break;
}
}
}
use of org.apache.cayenne.configuration.DataNodeDescriptor in project cayenne by apache.
the class FileProjectSaverTest method testSaveAs_Sorted.
@Test
public void testSaveAs_Sorted() throws Exception {
File testFolder = setupTestDirectory("testSaveAs_Sorted");
DataChannelDescriptor rootNode = new DataChannelDescriptor();
rootNode.setName("test");
// add maps and nodes in reverse alpha order. Check that they are saved in alpha
// order
rootNode.getDataMaps().add(new DataMap("C"));
rootNode.getDataMaps().add(new DataMap("B"));
rootNode.getDataMaps().add(new DataMap("A"));
DataNodeDescriptor[] nodes = new DataNodeDescriptor[3];
nodes[0] = new DataNodeDescriptor("Z");
nodes[1] = new DataNodeDescriptor("Y");
nodes[2] = new DataNodeDescriptor("X");
nodes[0].getDataMapNames().add("C");
nodes[0].getDataMapNames().add("B");
nodes[0].getDataMapNames().add("A");
rootNode.getNodeDescriptors().addAll(Arrays.asList(nodes));
Project project = new Project(new ConfigurationTree<DataChannelDescriptor>(rootNode));
saver.saveAs(project, new URLResource(testFolder.toURI().toURL()));
File target = new File(testFolder, "cayenne-test.xml");
assertTrue(target.isFile());
assertSaveAs_Sorted(target);
}
use of org.apache.cayenne.configuration.DataNodeDescriptor in project cayenne by apache.
the class DataDomainProvider method createAndInitDataDomain.
protected DataDomain createAndInitDataDomain() throws Exception {
DataChannelDescriptor descriptor = loadDescriptor();
DataDomain dataDomain = createDataDomain(descriptor.getName());
dataDomain.setMaxIdQualifierSize(runtimeProperties.getInt(Constants.SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY, -1));
dataDomain.setQueryCache(new NestedQueryCache(queryCache));
dataDomain.setEntitySorter(injector.getInstance(EntitySorter.class));
dataDomain.setEventManager(injector.getInstance(EventManager.class));
dataDomain.setDataRowStoreFactory(injector.getInstance(DataRowStoreFactory.class));
dataDomain.initWithProperties(descriptor.getProperties());
for (DataMap dataMap : descriptor.getDataMaps()) {
dataDomain.addDataMap(dataMap);
}
dataDomain.getEntityResolver().applyDBLayerDefaults();
dataDomain.getEntityResolver().setValueObjectTypeRegistry(valueObjectTypeRegistry);
for (DataNodeDescriptor nodeDescriptor : descriptor.getNodeDescriptors()) {
addDataNode(dataDomain, nodeDescriptor);
}
// init default node
DataNode defaultNode = null;
if (descriptor.getDefaultNodeName() != null) {
defaultNode = dataDomain.getDataNode(descriptor.getDefaultNodeName());
}
if (defaultNode == null) {
Collection<DataNode> allNodes = dataDomain.getDataNodes();
if (allNodes.size() == 1) {
defaultNode = allNodes.iterator().next();
}
}
if (defaultNode != null) {
logger.info("setting DataNode '" + defaultNode.getName() + "' as default, used by all unlinked DataMaps");
dataDomain.setDefaultNode(defaultNode);
}
for (DataChannelFilter filter : filters) {
dataDomain.addFilter(filter);
}
for (Object listener : listeners) {
dataDomain.addListener(listener);
}
return dataDomain;
}
use of org.apache.cayenne.configuration.DataNodeDescriptor in project cayenne by apache.
the class SyntheticNodeDataDomainProvider method createAndInitDataDomain.
@Override
protected DataDomain createAndInitDataDomain() throws Exception {
DataDomain dataDomain = super.createAndInitDataDomain();
// no nodes... add a synthetic node... it will become the default
if (dataDomain.getDataNodes().isEmpty()) {
DataChannelDescriptor channelDescriptor = new DataChannelDescriptor();
DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor(createSyntheticDataNodeName(dataDomain));
for (DataMap map : dataDomain.getDataMaps()) {
nodeDescriptor.getDataMapNames().add(map.getName());
}
nodeDescriptor.setDataChannelDescriptor(channelDescriptor);
DataNode node = addDataNode(dataDomain, nodeDescriptor);
dataDomain.setDefaultNode(node);
}
return dataDomain;
}
use of org.apache.cayenne.configuration.DataNodeDescriptor in project cayenne by apache.
the class DbImportConfiguration method createDataNodeDescriptor.
public DataNodeDescriptor createDataNodeDescriptor() {
DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor();
nodeDescriptor.setAdapterType(getAdapter());
nodeDescriptor.setDataSourceDescriptor(dataSourceInfo);
return nodeDescriptor;
}
Aggregations