public static FactModels unmarshal( final String content ) { try { //De-serialize model final List<FactMetaModel> models = toModel( content ); final FactModels factModels = new FactModels(); factModels.getModels().addAll( models ); //De-serialize Package name final String packageName = PackageNameParser.parsePackageName( content ); factModels.setPackageName( packageName ); //De-serialize imports final Imports imports = ImportsParser.parseImports( content ); factModels.setImports( imports ); return factModels; } catch ( final DroolsParserException e ) { throw new RuntimeException( e ); } //TODO {porcelli} needs define error handling strategy // log.error( "Unable to parse the DRL for the model - falling back to text (" + e.getMessage() + ")" ); // RuleContentText text = new RuleContentText(); // text.content = item.getContent(); // asset.setContent( text ); }
public void execute() { int editingFactIndex = factModels.getModels().indexOf( factMetaModel ); int newIndex = editingFactIndex - 1; swap( editingFactIndex, newIndex ); renderEditorArrows(); }
@Override public void create( final Path contextPath, final String baseFileName, final NewResourcePresenter presenter ) { final FactModels factModel = new FactModels(); busyIndicatorView.showBusyIndicator( CommonConstants.INSTANCE.Saving() ); factModelService.call( getSuccessCallback( presenter ), new HasBusyIndicatorDefaultErrorCallback( busyIndicatorView ) ).create( contextPath, buildFileName( resourceType, baseFileName ), factModel, "" ); }
@Override public Path save( final Path resource, final FactModels content, final Metadata metadata, final String comment ) { content.setPackageName( projectService.resolvePackageName( resource ) ); ioService.write( paths.convert( resource ), FactModelPersistence.marshal( content ), metadataService.setUpAttributes( resource, metadata ), makeCommentedOption( comment ) ); //Invalidate Project-level DMO cache as Model has changed. invalidateDMOProjectCache.fire( new InvalidateDMOProjectCacheEvent( resource ) ); //Signal update to interested parties resourceUpdatedEvent.fire( new ResourceUpdatedEvent( resource ) ); return resource; }
@Override public void callback( final FactModelContent content ) { model = content.getFactModels(); oracle = content.getDataModel(); oracle.filter( model.getImports() ); superTypes = content.getSuperTypes(); final ModelNameHelper modelNameHelper = new ModelNameHelper(); for ( final FactMetaModel currentModel : superTypes ) { modelNameHelper.getTypeDescriptions().put( currentModel.getName(), currentModel.getName() ); } view.setContent( model, superTypes, modelNameHelper ); importsWidget.setContent( oracle, model.getImports(), isReadOnly ); view.hideBusyIndicator(); } };
public void execute() { int editingFactIndex = factModels.getModels().indexOf( factMetaModel ); int newIndex = editingFactIndex + 1; swap( editingFactIndex, newIndex ); renderEditorArrows(); } };
@Override public Path create( final Path context, final String fileName, final FactModels content, final String comment ) { content.setPackageName( projectService.resolvePackageName( context ) ); final org.kie.commons.java.nio.file.Path nioPath = paths.convert( context ).resolve( fileName ); final Path newPath = paths.convert( nioPath, false ); ioService.createFile( nioPath ); ioService.write( nioPath, FactModelPersistence.marshal( content ), makeCommentedOption( comment ) ); //Signal creation to interested parties resourceAddedEvent.fire( new ResourceAddedEvent( newPath ) ); return newPath; }
private void swap( int editingFactIndex, int newIndex ) { Collections.swap( factModels.getModels(), editingFactIndex, newIndex ); factModelsPanel.swap( editingFactIndex, newIndex ); }
public void execute() { FactMetaModel factMetaModel = popup.getFactModel(); factModels.getModels().add( factMetaModel ); superTypeFactModels.add( factMetaModel ); addFactModelToStackPanel( factMetaModel ); } } );
public static String marshal( final FactModels content ) { final StringBuilder sb = new StringBuilder(); PackageNameWriter.write( sb, content ); ImportsWriter.write( sb, content ); for ( final FactMetaModel factMetaModel : content.getModels() ) { sb.append( toDRL( factMetaModel ) ).append( "\n\n" ); } return sb.toString().trim(); }
private void renderEditorArrows() { Iterator<AbstractLazyStackPanelHeader> iterator = factModelsPanel.getHeaderIterator(); while ( iterator.hasNext() ) { final AbstractLazyStackPanelHeader widget = iterator.next(); if ( widget instanceof FactModelEditor ) { final FactModelEditor editor = (FactModelEditor) widget; int index = factModels.getModels().indexOf( editor.getFactModel() ); editor.setUpVisible( index != 0 ); editor.setDownVisible( index != ( factModels.getModels().size() - 1 ) ); } } }
@Override public void setContent( final FactModels content, final List<FactMetaModel> superTypeFactModels, final ModelNameHelper modelNameHelper ) { this.factModels = content; this.superTypeFactModels = superTypeFactModels; this.modelNameHelper = modelNameHelper; this.factModelsPanel.clean(); for ( final FactMetaModel factMetaModel : factModels.getModels() ) { addFactModelToStackPanel( factMetaModel ); } }
@Override public FactModelContent loadContent( final Path path ) { final FactModels factModels = load( path ); final List<FactMetaModel> allAvailableTypes = loadAllAvailableTypes( path ); allAvailableTypes.addAll( factModels.getModels() ); final DataModelOracle oracle = dataModelService.getDataModel( path ); return new FactModelContent( factModels, allAvailableTypes, oracle ); }
private List<FactMetaModel> loadAllAvailableTypes( final Path path ) { final List<FactMetaModel> allAvailableTypes = new ArrayList<FactMetaModel>(); final Path projectRoot = projectService.resolveProject( path ); if ( projectRoot == null ) { return allAvailableTypes; } final org.kie.commons.java.nio.file.Path nioProjectRoot = paths.convert( projectRoot ); final org.kie.commons.java.nio.file.Path nioSrcRoot = nioProjectRoot.resolve( "src/main/resources" ); final Collection<org.kie.commons.java.nio.file.Path> modelNioPaths = fileDiscoveryService.discoverFiles( nioSrcRoot, new FileExtensionFilter( typeDefinition.getSuffix() ), true ); for ( org.kie.commons.java.nio.file.Path modelNioPath : modelNioPaths ) { final Path modelPath = paths.convert( modelNioPath ); if ( !modelPath.equals( path ) ) { final List<FactMetaModel> model = load( modelPath ).getModels(); allAvailableTypes.addAll( model ); } } return allAvailableTypes; }