@Override public void MetaFunction(metadslx.core.MetaFunction _this) { super.MetaFunction(_this); MetaFunctionType type = MetaFactory.instance().createMetaFunctionType(); ((ModelObject) type).mUnSet(MetaDescriptor.MetaFunctionType.ParameterTypesProperty); ((ModelObject) type) .mLazySet( MetaDescriptor.MetaFunctionType.ParameterTypesProperty, Lazy.create( () -> new ModelMultiList<>( (ModelObject) _this, MetaDescriptor.MetaFunctionType.ParameterTypesProperty, _this .getParameters() .stream() .map(p -> p.getType()) .collect(java.util.stream.Collectors.toList())), true)); ((ModelObject) type) .mLazySet( MetaDescriptor.MetaFunctionType.ReturnTypeProperty, Lazy.create(() -> _this.getReturnType(), true)); ((ModelObject) _this).mSet(MetaDescriptor.MetaFunction.TypeProperty, type); }
@Override public void MetaUnaryExpression(metadslx.core.MetaUnaryExpression _this) { super.MetaUnaryExpression(_this); ((ModelObject) _this) .mLazyAdd( MetaDescriptor.MetaBoundExpression.ArgumentsProperty, Lazy.create(() -> _this.getExpression(), true)); }
@Override public void MetaNewCollectionExpression(metadslx.core.MetaNewCollectionExpression _this) { super.MetaNewCollectionExpression(_this); ((ModelObject) _this) .mLazySetChild( MetaDescriptor.MetaNewCollectionExpression.ValuesProperty, MetaDescriptor.MetaExpression.ExpectedTypeProperty, Lazy.create(() -> _this.getTypeReference().getInnerType(), true)); }