blob: 78a83a9127caf5220d36a7a6098f0184e11be291 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package org.jetbrains.protocolReader;
import org.jetbrains.jsonProtocol.ItemDescriptor;
import org.jetbrains.jsonProtocol.ProtocolMetaModel;
import java.util.List;
/**
* Member scope is used to generate additional types that are used only from method.
* These types will be named after this method.
*/
abstract class MemberScope implements ResolveAndGenerateScope {
private final String memberName;
private final ClassScope classScope;
MemberScope(ClassScope classScope, String memberName) {
this.classScope = classScope;
this.memberName = memberName;
}
@Override
public <T extends ItemDescriptor> TypeDescriptor resolveType(T typedObject) {
return classScope.generator.generator.resolveType(typedObject, this);
}
protected String getMemberName() {
return memberName;
}
public abstract BoxableType generateEnum(String description, List<String> enumConstants);
public abstract BoxableType generateNestedObject(String description, List<ProtocolMetaModel.ObjectProperty> propertyList);
@Override
public String getDomainName() {
return classScope.generator.domain.domain();
}
@Override
public TypeData.Direction getTypeDirection() {
return classScope.getTypeDirection();
}
}
|