/*
* Licensed to the Apache Software Foundation ( ASF ) under one
* or more contributor license agreements . See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership . The ASF licenses this file
* to you 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.netbeans.api.diff;
import java.awt.Component;
import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.Reader;
import java.util.Collection;
import org.openide.util.Lookup;
/**
* This class represents a visual diff presenter , that knows how to compute the
* differences between files and show them to the user .
*
* @ author Martin Entlicher
*/
public abstract class Diff extends Object {
/**
* Get the default visual diff presenter .
*/
public static Diff getDefault() {
return Lookup.getDefault().lookup(Diff.class );
}
/**
* Get all visual diff presenters registered in the system .
*/
public static Collection<? extends Diff> getAll() {
return Lookup.getDefault().lookup(new Lookup.Template<Diff>(Diff.class )).allInstances();
}
/**
* Show the visual representation of the diff between two sources .
* @ param name1 the name of the first source
* @ param title1 the title of the first source
* @ param r1 the first source
* @ param name2 the name of the second source
* @ param title2 the title of the second source
* @ param r2 the second resource compared with the first one .
* @ param MIMEType the mime type of these sources
* @ return The Component representing the diff visual representation
* or null , when the representation is outside the IDE .
* @ throws IOException when the reading from input streams fails .
*/
public abstract Component createDiff(String name1, String title1,
Reader r1, String name2, String title2,
Reader r2, String MIMEType) throws IOException ;
/**
* Creates single - window diff component that does not include any navigation controls and
* is controlled programatically via the returned DiffView interface .
* < p >
* The StreamSource can be used to save the source content if it ' s modified
* in the view . The view should not allow source modification if StreamSource . createWriter ( )
* returns < code > null < / code > .
*
* @ param s1 the first source
* @ param s2 the second source
* @ return DiffView controller interface
*/
public DiffView createDiff(StreamSource s1, StreamSource s2) throws IOException {
final Component c = createDiff(s1.getName(), s1.getTitle(), s1.createReader(),
s2.getName(), s2.getTitle(), s2.createReader(),
s1.getMIMEType());
return new DiffView() {
public Component getComponent() {
return c;
}
public int getDifferenceCount() {
return 0 ;
}
public boolean canSetCurrentDifference() {
return false ;
}
public void setCurrentDifference(int diffNo) throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
public int getCurrentDifference() throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
public javax.swing.JToolBar getToolBar() {
return null ;
}
public void addPropertyChangeListener(PropertyChangeListener l) {}
public void removePropertyChangeListener(PropertyChangeListener l) {}
};
}
}
Messung V0.5 in Prozent C=94 H=89 G=91
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland