Skip to content

Commit 0b0c1ae

Browse files
committed
Add alias parsing
1 parent 0e52a03 commit 0b0c1ae

3 files changed

Lines changed: 12 additions & 11 deletions

File tree

src/gir2java/GirParser.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -901,15 +901,9 @@ private void parseAlias(Element root, ParsingContext context) {
901901
String name = root.getAttributeValue("name");
902902
Set<String> foundTypes = (Set<String>)context.getExtra(Constants.CONTEXT_EXTRA_DEFINED_TYPES);
903903
foundTypes.add("" + context.getExtra(Constants.CONTEXT_EXTRA_NAMESPACE) + '.' + name);
904-
ConvertedType convType = new ConvertedType(
905-
context.getCm(),
906-
(String)context.getExtra(Constants.CONTEXT_EXTRA_NAMESPACE),
907-
name,
908-
root.getAttributeValue("type",Constants.GIR_XMLNS_C),
909-
false
910-
);
911-
convType.setJType(context.getCm().ref(Object.class));
912-
context.registerType(convType);
904+
905+
ConvertedType referred = findType(root, context);
906+
context.registerTypeAs(referred, (String)context.getExtra(Constants.CONTEXT_EXTRA_NAMESPACE), name);
913907
}
914908

915909
@SuppressWarnings("unused")

src/gir2java/ParsingContext.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ public void registerType(ConvertedType type) {
5656
types.registerType(type);
5757
}
5858

59+
public void registerTypeAs(ConvertedType type, String namespace, String name) {
60+
types.registerTypeAs(type, namespace, name);
61+
}
62+
5963
public ConvertedType lookupType(String namespace, String name) {
6064
return types.lookupType(namespace, name);
6165
}

src/gir2java/TypeRegistry.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@ public class TypeRegistry {
1717
Map<String, JDefinedClass> namespaceClasses = new HashMap<String, JDefinedClass>();
1818

1919
public void registerType(ConvertedType type) {
20-
String namespace = type.getNamespace();
20+
registerTypeAs(type, type.getNamespace(), type.getType());
21+
}
22+
23+
public void registerTypeAs(ConvertedType type, String namespace, String name) {
2124
Map<String, ConvertedType> nsStore = store.get(namespace);
2225

2326
if (nsStore == null) {
2427
nsStore = new HashMap<String, ConvertedType>();
2528
store.put(namespace, nsStore);
2629
}
2730

28-
nsStore.put(type.getType(), type);
31+
nsStore.put(name, type);
2932
}
3033

3134
/**

0 commit comments

Comments
 (0)