| 言語 | 項目 | タグ付き値 | ステレオタイプ | モデルの属性 | 付加されるモデル |
| Java | Javaプロジェクト | [キー]jude.profile.java[値]true/false | - | - | プロジェクトモデル(IModel) |
| C# | C#プロジェクト | [キー]jude.profile.c_sharp[値]true/false | - | - | プロジェクトモデル(IModel) |
| C++ | C++プロジェクト | [キー]jude.profile.c_plus[値]true/false | - | - | プロジェクトモデル(IModel) |
| 言語 | モデル | ステレオタイプ |
| Java | クラス(IClass) | Java Class |
| Java | 属性(IAttribute) | Java Attribute |
| Java | 操作(IOperation) | Java Method |
| C# | クラス(IClass) | C# Class |
| C# | 属性(IAttribute) | C# Attribute |
| C# | 操作(IOperation) | C# Method |
| C++ | クラス(IClass) | C++ Class |
| C++ | 属性(IAttribute) | C++ Attribute |
| C++ | 操作(IOperation) | C++ Method |
| 言語 | 項目 | ステレオタイプ | タグ付き値 | モデルの属性 | 付加されるモデル |
| Java | <<enum>> | <<enum>> | - | - | クラス(IClass) |
| Java | annotations | - | [キー]jude.java.annotations[値]任意 | - | クラス(IClass)、属性(IAttribute)、操作(IOperation) |
| Java | @interface | - | [キー]jude.java.atmark_interface[値]true/false | - | クラス(IClass) |
| Java | strictfp | - | [キー]jude.java.strictfp[値]true/false | - | クラス(IClass)、操作(IOperation) |
| Java | [クラス]final | - | - | IClass.isLeaf() | クラス(IClass) |
| Java | <<enum constant>> | <<enum constant>> | - | - | 属性(IAttribute) |
| Java | transient | - | [キー]jude.java.transient[値]true/false | - | 属性(IAttribute) |
| Java | volatile | - | [キー]jude.java.volatile[値]true/false | - | 属性(IAttribute) |
| Java | [属性]final | - | - | IAttribute.isChangeable() | 属性(IAttribute) |
| Java | synchronized | - | [キー]jude.java.synchronized[値]true/false | - | 操作(IOperation) |
| Java | native | - | [キー]jude.java.native[値]true/false | - | 操作(IOperation) |
| Java | [操作]final | - | - | IClass.isLeaf() | 操作(IOperation) |
| C# | <<delegate>> | <<delegate>> | - | - | クラス(IClass) |
| C# | <<struct>> | <<struct>> | - | - | クラス(IClass) |
| C# | <<enum>> | <<enum>> | - | - | クラス(IClass) |
| C# | attributes | - | [キー]jude.c_sharp.attributes[値]任意 | - | クラス(IClass)、属性(IAttribute)、操作(IOperation) |
| C# | sealed | - | [キー]jude.c_sharp.sealed[値]true/false | - | クラス(IClass) |
| C# | static | - | [キー]jude.c_sharp.static[値]true/false | - | クラス(IClass) |
| C# | internal | - | [キー]jude.c_sharp.internal[値]true/false | - | クラス(IClass)、属性(IAttribute)、操作(IOperation) |
| C# | <<property>> | <<property>> | - | - | 属性(IAttribute) |
| C# | <<property>> get | - | [キー]jude.c_sharp.property_get[値]true/false | - | 属性(IAttribute) |
| C# | <<property>> set | - | [キー]jude.c_sharp.property_set[値]true/false | - | 属性(IAttribute) |
| C# | <<enum constant>> | <<enum constant>> | - | - | 属性(IAttribute) |
| C# | const | - | [キー]jude.c_sharp.const[値]true/false | - | 属性(IAttribute) |
| C# | volatile | - | [キー]jude.c_sharp.volatile[値]true/false | - | 属性(IAttribute) |
| C# | [属性]readonly | - | - | IAttribute.getChangeable() | 属性(IAttribute) |
| C# | <<event>> | <<event>> | - | - | 操作(IOperation) |
| C# | <<event>> add | - | [キー]jude.c_sharp.event_add[値]true/false | - | 操作(IOperation) |
| C# | <<event>> remove | - | [キー]jude.c_sharp.event_remove[値]true/false | - | 操作(IOperation) |
| C# | <<indexer>> | <<indexer>> | - | - | 操作(IOperation) |
| C# | <<indexer>> get | - | [キー]jude.c_sharp.indexer_get[値]true/false | - | 操作(IOperation) |
| C# | <<indexer>> set | - | [キー]jude.c_sharp.indexer_set[値]true/false | - | 操作(IOperation) |
| C# | extern | - | [キー]jude.c_sharp.extern[値]true/false | - | 操作(IOperation) |
| C# | override | - | [キー]jude.c_sharp.override[値]true/false | - | 操作(IOperation) |
| C# | sealed | - | [キー]jude.c_sharp.sealed[値]true/false | - | 操作(IOperation) |
| C# | unsafe | - | [キー]jude.c_sharp.unsafe[値]true/false | - | 操作(IOperation) |
| C# | virtual | - | [キー]jude.c_sharp.virtual[値]true/false | - | 操作(IOperation) |
| C# | extension method | - | [キー]jude.c_sharp.extension_method[値]true/false | - | 操作(IOperation) |
| C++ | 型修飾子 | - | [キー]type_modifier[値]文字列 | IElement.getTypeModifier(),ITemplateBinding.getActualParameterTypeModifier() | - |
| C++ | <<enum>> | <<enum>> | - | - | クラス(IClass) |
| C++ | <<struct>> | <<struct>> | - | - | クラス(IClass) |
| C++ | <<union>> | <<union>> | - | - | クラス(IClass) |
| C++ | <<enum constant>> | <<enum constant>> | - | - | 属性(IAttribute) |
| C++ | const | - | [キー]jude.c_plus.const[値]true/false | - | 属性(IAttribute)、操作(IOperation) |
| C++ | mutable | - | [キー]jude.c_plus.mutable[値]true/false | - | 属性(IAttribute) |
| C++ | volatile | - | [キー]jude.c_plus.volatile[値]true/false | - | 属性(IAttribute) |
| C++ | friend | - | [キー]jude.c_plus.friend[値]true/false | - | 操作(IOperation) |
| C++ | explicit | - | [キー]jude.c_plus.explicit[値]true/false | - | 操作(IOperation) |
| C++ | inline | - | [キー]jude.c_plus.inline[値]true/false | - | 操作(IOperation) |
| C++ | virtual | - | [キー]jude.c_plus.virtual[値]true/false | - | 操作(IOperation) |
public void getLanguageInfomataion() {
BasicModelEditor bme = ModelEditorFactory.getBasicModelEditor();
IModel project = AstahAPI.getAstahAPI().getProjectAccessor().getProject();
try {
if (isJavaProject(project)) {
System.out.println("Java Language");
}
if (isCSharpProject(project)) {
System.out.println("C# Language");
}
} catch (Exception e) {
e.printStackTrace();
}
}
private boolean isJavaProject(IModel project) {
ITaggedValue[] tags = project.getTaggedValues();
for (int i = 0; i < tags.length; i++) {
ITaggedValue tag = tags[i];
String key = tag.getKey();
if ("jude.profile.java".eqauls(key) {
if ("true".equals(tag.getValue()) {
return true;
}
}
}
return false;
}
private boolean isCSharpProject(IModel project) {
ITaggedValue[] tags = project.getTaggedValues();
for (int i = 0; i < tags.length; i++) {
ITaggedValue tag = tags[i];
String key = tag.getKey();
if ("jude.profile.c_sharp".eqauls(key) {
if ("true".equals(tag.getValue()) {
return true;
}
}
}
return false;
}
|
public void testSetLanguageCSharp() throws ClassNotFoundException,
InvalidEditingException, ProjectNotFoundException {
BasicModelEditor bme = ModelEditorFactory.getBasicModelEditor();
IModel project = AstahAPI.getAstahAPI().getProjectAccessor().getProject();
try {
TransactionManager.beginTransaction();
//Java:OFF
bme.setLanguageJava(project, false);
//C#:OFF
bme.setLanguageCSharp(project, false);
//Java:ON
bme.setLanguageJava(project, true);
//C#:ON
bme.setLanguageCSharp(project, true);
TransactionManager.endTransaction();
} catch (InvalidEditingException e) {
TransactionManager.abortTransaction();
e.printStackTrace();
fail();
}
}
|
public void testGetJavaClassStrictfp() {
BasicModelEditor bme = ModelEditorFactory.getBasicModelEditor();
IModel project = AstahAPI.getAstahAPI().getProjectAccessor().getProject();
try {
IElement element = getElement(project.getOwnedElements(), "Class0");
if (isJavaClass(element)) {
System.out.println("Class0 has \"Java Class\" stereotype");
if (isJavaClassStrictfp(element)) {
System.out.println("Class0 has \"jude.java.strictfp\" TaggedValue");
}
}
} catch (Exception e) {
e.printStackTrace();
fail();
}
}
protected INamedElement getElement(INamedElement[] elements, String elementName) {
for (int i = 0; i < elements.length; i++) {
if (elements[i].getName().equals(elementName)) {
return elements[i];
}
}
return null;
}
private boolean isJavaClass(IElement element) {
String[] sterotyopes = element.getStereotypes();
for (int i =0 ; i < sterotyopes.length; i++) {
if ("Java Class".equals(sterotyopes[i])) {
return true;
}
}
return false;
}
private boolean isJavaClassStrictfp(IElement element) {
ITaggedValue[] tags = element.getTaggedValues();
for (int i =0 ; i < tags.length; i++) {
ITaggedValue tag = tags[i];
if ("jude.java.strictfp".equals(tag.getKey())) {
if ("true".equals(tag.getValue())) {
return true;
}
}
}
return false;
}
|
public void testJavaAttributeStereotypeInClass() throws InvalidEditingException, ClassNotFoundException {
BasicModelEditor bme = ModelEditorFactory.getBasicModelEditor();
try {
TransactionManager.beginTransaction();
bme.setLanguageJava(project, true);
IElement element = getElement(project.getOwnedElements(), "Class0");
element.addStereotype("Java Class");
bme.createTaggedValue(element, "jude.java.strictfp", "true");
TransactionManager.endTransaction();
} catch (InvalidEditingException e) {
TransactionManager.abortTransaction();
fail();
}
}
|