📄 cwmexample.java
字号:
uniqueKey.setNamespace( referralDimension );
ownedElements = referralDimension.getOwnedElement();
ownedElements.add( uniqueKey );
// Note that the stereotype is reused...
extendedElements.add( uniqueKey );
// Create the non-key attributes and add them to the Referral Dimension.
// Note that the data types created previously are re-used, except
// for a "URL" data type, which needs to be created.
DataType urlType = dataTypeClass.createDataType();
urlType.setName( "URL" );
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "ReferralType" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( referralDimension );
featureList.add( nonKeyAttribute );
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "ReferralURL" );
nonKeyAttribute.setType( urlType );
nonKeyAttribute.setNamespace( referralDimension );
featureList.add( nonKeyAttribute );
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "ReferralSite" );
nonKeyAttribute.setType( urlType );
nonKeyAttribute.setNamespace( referralDimension );
featureList.add( nonKeyAttribute );
// ...
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "CustomerStatus" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( referralDimension );
featureList.add( nonKeyAttribute );
// Create the Causal Dimension and add it to the Schema
Dimension causalDimension = dimensionClass.createDimension();
causalDimension.setName( "Causal" );
dimCol.add( causalDimension );
causalDimension.setSchema( schema );
// Create the primary key of the Causal Dimension using the
// "surrogate key" pattern
keyAttribute = attributeClass.createAttribute();
keyAttribute.setName( "CausalID" );
keyAttribute.setType( integerType );
keyAttribute.setNamespace( causalDimension );
featureList = causalDimension.getFeature();
featureList.add( keyAttribute );
uniqueKey = uniqueKeyClass.createUniqueKey();
uniqueKey.setName( "CausalUK" );
keyFeatureList = uniqueKey.getFeature();
keyFeatureList.add( keyAttribute );
uniqueKey.setNamespace( causalDimension );
ownedElements = causalDimension.getOwnedElement();
ownedElements.add( uniqueKey );
// Note that the stereotype is reused...
extendedElements.add( uniqueKey );
// Create the non-key attributes and add them to the Causal Dimension.
// Note that the data types created previously are re-used.
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "CausalType" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( causalDimension );
featureList.add( nonKeyAttribute );
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "PriceTreatment" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( causalDimension );
featureList.add( nonKeyAttribute );
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "AdType" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( causalDimension );
featureList.add( nonKeyAttribute );
// ...
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "OtherCausalEvent" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( causalDimension );
featureList.add( nonKeyAttribute );
// Create the Entity Dimension and add it to the Schema
Dimension entityDimension = dimensionClass.createDimension();
entityDimension.setName( "Entity" );
dimCol.add( entityDimension );
entityDimension.setSchema( schema );
// Create the primary key of the Entity Dimension using the
// "surrogate key" pattern
keyAttribute = attributeClass.createAttribute();
keyAttribute.setName( "EntityID" );
keyAttribute.setType( integerType );
keyAttribute.setNamespace( entityDimension );
featureList = entityDimension.getFeature();
featureList.add( keyAttribute );
uniqueKey = uniqueKeyClass.createUniqueKey();
uniqueKey.setName( "EntityUK" );
keyFeatureList = uniqueKey.getFeature();
keyFeatureList.add( keyAttribute );
uniqueKey.setNamespace( entityDimension );
ownedElements = entityDimension.getOwnedElement();
ownedElements.add( uniqueKey );
// Note that the stereotype is reused...
extendedElements.add( uniqueKey );
// Create the non-key attributes and add them to the Entity Dimension.
// Note that the data types created previously are re-used.
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "EntityType" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( entityDimension );
featureList.add( nonKeyAttribute );
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "EntityName" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( entityDimension );
featureList.add( nonKeyAttribute );
nonKeyAttribute = attributeClass.createAttribute();
nonKeyAttribute.setName( "IndustryCategory" );
nonKeyAttribute.setType( stringType );
nonKeyAttribute.setNamespace( entityDimension );
featureList.add( nonKeyAttribute );
// Placing "Surrogate Key" Stereotype instance in "WebDW" Schema
surrogateKeyStereotype.setNamespace( schema );
Collection<ModelElement> schemaOwnedElements = schema.getOwnedElement();
schemaOwnedElements.add( surrogateKeyStereotype );
TypeMappingPackage typeMappingPkg = cwmFactory.getTypeMapping();
TypeSystemClass typeSystemClass = typeMappingPkg.getTypeSystem();
TypeSystem typeSystem = typeSystemClass.createTypeSystem();
typeSystem.setName( "WebDWTypes" );
Collection<ModelElement> typeCol = typeSystem.getOwnedElement();
typeCol.add( stringType );
typeCol.add( integerType );
typeCol.add( booleanType );
typeCol.add( urlType );
stringType.setNamespace( typeSystem );
integerType.setNamespace( typeSystem );
booleanType.setNamespace( typeSystem );
urlType.setNamespace( typeSystem );
typeSystem.setNamespace( schema );
schemaOwnedElements.add( typeSystem );
// Create the analysis cubes
CubeClass cubeClass = olapPkg.getCube();
javax.olap.serversidemetadata.Cube sessionAnalysisCube = cubeClass.createCube();
sessionAnalysisCube.setName( "SessionAnalysis" );
javax.olap.serversidemetadata.Cube pageAnalysisCube = cubeClass.createCube();
pageAnalysisCube.setName( "PageAnalysis" );
javax.olap.serversidemetadata.Cube aggregationCube = cubeClass.createCube();
aggregationCube.setName( "Aggregation" );
Collection<Cube> cubeCol = schema.getCube();
cubeCol.add( sessionAnalysisCube );
sessionAnalysisCube.setSchema( schema );
cubeCol.add( pageAnalysisCube );
pageAnalysisCube.setSchema( schema );
cubeCol.add( aggregationCube );
aggregationCube.setSchema( schema );
MeasureClass measureClass = olapPkg.getMeasure();
Measure measure = measureClass.createMeasure();
measure.setName( "SessionSeconds" );
measure.setType( integerType );
List<Attribute> sessionFeatureList = sessionAnalysisCube.getFeature();
sessionFeatureList.add( measure );
measure.setOwner( sessionAnalysisCube );
measure = measureClass.createMeasure();
measure.setName( "PagesVisited" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( sessionAnalysisCube );
measure = measureClass.createMeasure();
measure.setName( "OrdersPlaced" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( sessionAnalysisCube );
measure = measureClass.createMeasure();
measure.setName( "UnitsOrdered" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( sessionAnalysisCube );
DataType doubleType = dataTypeClass.createDataType();
urlType.setName( "Double" );
measure = measureClass.createMeasure();
measure.setName( "OrderDollars" );
measure.setType( doubleType );
sessionFeatureList.add( measure );
measure.setOwner( sessionAnalysisCube );
measureClass = olapPkg.getMeasure();
measure = measureClass.createMeasure();
measure.setName( "PageSeconds" );
measure.setType( integerType );
sessionFeatureList = sessionAnalysisCube.getFeature();
sessionFeatureList.add( measure );
measure.setOwner( pageAnalysisCube );
measure = measureClass.createMeasure();
measure.setName( "UnitsOrdered" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( pageAnalysisCube );
measure = measureClass.createMeasure();
measure.setName( "OrderDollars" );
measure.setType( doubleType );
sessionFeatureList.add( measure );
measure.setOwner( pageAnalysisCube );
measureClass = olapPkg.getMeasure();
measure = measureClass.createMeasure();
measure.setName( "NumberSessions" );
measure.setType( integerType );
sessionFeatureList = sessionAnalysisCube.getFeature();
sessionFeatureList.add( measure );
measure.setOwner( aggregationCube );
measure = measureClass.createMeasure();
measure.setName( "SessionSeconds" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( aggregationCube );
measure = measureClass.createMeasure();
measure.setName( "PagesVisited" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( aggregationCube );
measure = measureClass.createMeasure();
measure.setName( "OrdersPlaced" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( aggregationCube );
measure = measureClass.createMeasure();
measure.setName( "UnitsOrdered" );
measure.setType( integerType );
sessionFeatureList.add( measure );
measure.setOwner( aggregationCube );
measure = measureClass.createMeasure();
measure.setName( "OrderDollars" );
measure.setType( doubleType );
sessionFeatureList.add( measure );
measure.setOwner( aggregationCube );
}
/**
* Run CWM example.
*
* @throws Exception error while example is running
*/
public void runExample() throws Exception {
createDataWarehouseManagementModel();
createDimensionalModel();
createWebEnabledDataWarehouseModel();
}
/**
* Simple example of of how to use the CWM classes via JMI interface.
*
* @param args arguments (ignored)
*/
public static void main(java.lang.String[] args) {
try {
new CwmExample().runExample();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -