/* 858 */ if (!intf.equals("")) interfaces.add(intf);
/* */ }
/* 860 */ ifaces = (String[])interfaces.toArray(new String[interfaces.size()]);
/* */ }
/* */
/* 863 */ InterfaceIntroduction pcut = null;
/* 864 */ if (classExpr != null)
/* */ {
/* 866 */ pcut = new InterfaceIntroduction(name, classExpr, ifaces);
/* */ }
/* */ else
/* */ {
/* 870 */ ASTStart start = new TypeExpressionParser(new StringReader(ast)).Start();
/* 871 */ pcut = new InterfaceIntroduction(name, start, ifaces);
/* */ }
/* 873 */ Iterator it = XmlHelper.getChildrenByTagName(pointcut, "mixin");
/* 874 */ while (it.hasNext())
/* */ {
/* 876 */ Element mixin = (Element)it.next();
/* 877 */ if (mixin != null)
/* */ {
/* 879 */ String construction = XmlHelper.getOptionalChildContent(mixin, "construction");
/* 880 */ String classname = XmlHelper.getUniqueChildContent(mixin, "class");
/* 881 */ String isTransientString = mixin.getAttribute("transient");
/* 882 */ boolean isTransient = true;
/* 883 */ if ((isTransientString == null) || (isTransientString.trim().equals("")))
/* */ {
/* 885 */ isTransient = true;
/* */ }
/* */ else
/* */ {
/* 889 */ isTransient = new Boolean(isTransientString).booleanValue();
/* */ }
/* */
/* 892 */ intfs = XmlHelper.getUniqueChildContent(mixin, "interfaces");
/* 893 */ StringTokenizer tokenizer = new StringTokenizer(intfs, ",");
/* 894 */ ArrayList interfaces = new ArrayList();
/* 895 */ while (tokenizer.hasMoreTokens())
/* */ {
/* 897 */ String intf = tokenizer.nextToken().trim();
/* 898 */ if (!intf.equals("")) interfaces.add(intf);
/* */ }
/* 900 */ ifaces = (String[])interfaces.toArray(new String[interfaces.size()]);
/* 901 */ pcut.getMixins().add(new InterfaceIntroduction.Mixin(classname, ifaces, construction, isTransient));
/* */ }
/* */ }
/* 904 */ this.manager.addInterfaceIntroduction(pcut);
/* */ }