/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.workbench.common.services.backend.builder.core; import java.util.ArrayList; import java.util.List; import org.guvnor.common.services.project.builder.model.BuildMessage; import org.guvnor.common.services.shared.message.Level; import org.guvnor.common.services.shared.validation.model.ValidationMessage; import org.kie.api.builder.Message; import static org.kie.workbench.common.services.backend.builder.core.BaseFileNameResolver.*; class MessageConverter { static List<BuildMessage> convertMessages( List<Message> messages, Handles handles ) { List<BuildMessage> result = new ArrayList<BuildMessage>(); if ( !( messages == null || messages.isEmpty() ) ) { for ( Message message : messages ) { result.add( convertMessage( message, handles ) ); } } return result; } static List<BuildMessage> convertValidationMessages( List<ValidationMessage> validationMessages ) { List<BuildMessage> result = new ArrayList<BuildMessage>(); if ( !( validationMessages == null || validationMessages.isEmpty() ) ) { for ( ValidationMessage validationMessage : validationMessages ) { result.add( convertValidationMessage( validationMessage ) ); } } return result; } static BuildMessage convertValidationMessage( final ValidationMessage message ) { final BuildMessage m = new BuildMessage(); m.setLevel( message.getLevel() ); m.setId( message.getId() ); m.setLine( message.getLine() ); m.setColumn( message.getColumn() ); m.setText( message.getText() ); m.setPath( message.getPath() ); return m; } static BuildMessage convertMessage( final Message message, Handles handles ) { final BuildMessage m = new BuildMessage(); switch ( message.getLevel() ) { case ERROR: m.setLevel( Level.ERROR ); break; case WARNING: m.setLevel( Level.WARNING ); break; case INFO: m.setLevel( Level.INFO ); break; } m.setId( message.getId() ); m.setLine( message.getLine() ); m.setPath( convertPath( message.getPath(), handles ) ); m.setColumn( message.getColumn() ); m.setText( message.getText() ); return m; } private static org.uberfire.backend.vfs.Path convertPath( String kieBuilderPath, Handles handles ) { if ( kieBuilderPath == null || kieBuilderPath.isEmpty() ) { return null; } //look for a resource related path org.uberfire.backend.vfs.Path path = handles.get( Handles.RESOURCE_PATH + "/" + getBaseFileName( kieBuilderPath ) ); if ( path == null ) { //give a second chance, it might be a java resource error. Java paths has the form src/main/java/org/File.java path = handles.get( getBaseFileName( kieBuilderPath ) ); } return path; } }