Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ plugins {
}

group = 'com.josdem.jmetadata'
version = '1.3.7'
version = '1.3.8'

java {
toolchain {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import com.josdem.jmetadata.action.ActionResult;
import com.josdem.jmetadata.action.Actions;
import com.josdem.jmetadata.exception.MetadataException;
import com.josdem.jmetadata.exception.BusinessException;
import com.josdem.jmetadata.helper.CoverArtRetrofitHelper;
import com.josdem.jmetadata.helper.RetrofitHelper;
import com.josdem.jmetadata.metadata.MetadataWriter;
Expand Down Expand Up @@ -145,8 +145,8 @@ public synchronized ActionResult completeAlbum(Metadata metadata) {
metadata.setCoverArt(coverArtNew.getImage());
}
return ActionResult.Updated;
} catch (MetadataException mde) {
log.error(mde.getMessage(), mde);
} catch (BusinessException bse) {
log.error(bse.getMessage(), bse);
return ActionResult.Error;
}
}
Expand Down
8 changes: 3 additions & 5 deletions src/main/java/com/josdem/jmetadata/gui/MainWindow.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
import com.josdem.jmetadata.model.User;
import com.josdem.jmetadata.observer.ObservValue;
import com.josdem.jmetadata.observer.Observer;
import com.josdem.jmetadata.service.impl.ImageServiceImpl;
import com.josdem.jmetadata.util.FileUtils;
import com.josdem.jmetadata.util.ImageUtils;
import java.awt.Image;
import java.awt.Rectangle;
Expand Down Expand Up @@ -85,10 +87,6 @@
import org.springframework.beans.factory.annotation.Autowired;

@Slf4j

/**
* @understands A principal JAudioScrobbler principal window
*/
@SuppressWarnings("unused")
public class MainWindow extends JFrame {
private static final long serialVersionUID = 1311230231101552007L;
Expand Down Expand Up @@ -168,7 +166,6 @@ public class MainWindow extends JFrame {
private JMenuItem exitMenuItem;
private InputMap inputMap;
private JScrollPane scrollPane;
private ImageUtils imageUtils = new ImageUtils();
private Set<Metadata> metadataWithAlbum = new HashSet<Metadata>();
private MetadataAdapter metadataAdapter = new MetadataAdapter();
private DialogHelper dialogHelper = new DialogHelper();
Expand All @@ -184,6 +181,7 @@ public class MainWindow extends JFrame {

public MainWindow() {
super(ApplicationConstants.APPLICATION_NAME);
ImageUtils imageUtils = new ImageUtils(new ImageServiceImpl(), new FileUtils());
initialize();
getDescriptionTable().getModel().addTableModelListener(new DescriptionTableModelListener());
}
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/com/josdem/jmetadata/gui/MetadataDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
import com.josdem.jmetadata.model.Model;
import com.josdem.jmetadata.observer.ObservValue;
import com.josdem.jmetadata.observer.Observer;
import com.josdem.jmetadata.service.impl.ImageServiceImpl;
import com.josdem.jmetadata.util.FileUtils;
import com.josdem.jmetadata.util.ImageUtils;
import java.awt.Image;
import java.awt.Rectangle;
Expand Down Expand Up @@ -122,7 +124,7 @@ public class MetadataDialog extends AllDialog {
private JLabel cdsLabel;
private JPanel imagePanel;
private Image coverArt;
private ImageUtils imageUtils = new ImageUtils();
private final transient ImageUtils imageUtils;
private MetadataHelper metadataHelper = new MetadataHelper();
private MetadataCollaborator metadataCollaborator = new MetadataCollaborator();
private final ControlEngineConfigurator configurator;
Expand All @@ -132,6 +134,7 @@ public MetadataDialog(
super(frame, true, message);
this.configurator = controlEngineConfigurator;
this.message = message;
imageUtils = new ImageUtils(new ImageServiceImpl(), new FileUtils());
List<Metadata> metadatas = controlEngineConfigurator.getControlEngine().get(Model.METADATA);
metadataCollaborator.setMetadatas(metadatas);
initializeContentPane();
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/josdem/jmetadata/helper/ImageExporter.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,19 @@
import java.io.File;
import java.io.IOException;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.jaudiotagger.audio.exceptions.CannotReadException;
import org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
import org.jaudiotagger.tag.TagException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class ImageExporter {

@Autowired private MetadataService metadataService;

private ImageUtils imageUtils = new ImageUtils();
private final ImageUtils imageUtils;
private final MetadataService metadataService;

public void export(ExportPackage exportPackage)
throws IOException,
Expand Down
158 changes: 59 additions & 99 deletions src/main/java/com/josdem/jmetadata/metadata/MetadataWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@

package com.josdem.jmetadata.metadata;

import com.josdem.jmetadata.exception.MetadataException;
import com.josdem.jmetadata.exception.BusinessException;
import com.josdem.jmetadata.helper.ArtworkHelper;
import com.josdem.jmetadata.helper.AudioFileHelper;
import com.josdem.jmetadata.util.ImageUtils;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jaudiotagger.audio.AudioFile;
Expand All @@ -40,210 +41,169 @@

@Slf4j
@Service
@RequiredArgsConstructor
public class MetadataWriter {
private Tag tag;
private AudioFile audioFile;
private AudioFileHelper audioFileIOHelper = new AudioFileHelper();
private ImageUtils imageUtils = new ImageUtils();
private ArtworkHelper artworkHelper = new ArtworkHelper();

private final ImageUtils imageUtils;
private final AudioFileHelper audioFileIOHelper;
private final ArtworkHelper artworkHelper;

public void setFile(File file) {
try {
audioFile = audioFileIOHelper.read(file);
tag = audioFile.getTag();
} catch (CannotReadException nre) {
} catch (CannotReadException
| IOException
| TagException
| ReadOnlyFileException
| InvalidAudioFrameException nre) {
log.error(nre.getMessage(), nre);
} catch (IOException ioe) {
log.error(ioe.getMessage(), ioe);
} catch (TagException tae) {
log.error(tae.getMessage(), tae);
} catch (ReadOnlyFileException roe) {
log.error(roe.getMessage(), roe);
} catch (InvalidAudioFrameException iae) {
log.error(iae.getMessage(), iae);
}
}

public void writeArtist(String artist) {
try {
tag.setField(FieldKey.ARTIST, artist);
audioFile.commit();
} catch (KeyNotFoundException kne) {
log.error(kne.getMessage(), kne);
} catch (FieldDataInvalidException fie) {
log.error(fie.getMessage(), fie);
} catch (CannotWriteException nwe) {
log.error(nwe.getMessage(), nwe);
} catch (KeyNotFoundException | FieldDataInvalidException | CannotWriteException kne) {
throw new BusinessException(kne.getMessage());
}
}

public void writeTitle(String trackName) {
try {
tag.setField(FieldKey.TITLE, trackName);
audioFile.commit();
} catch (KeyNotFoundException kne) {
log.error(kne.getMessage(), kne);
} catch (FieldDataInvalidException fie) {
log.error(fie.getMessage(), fie);
} catch (CannotWriteException nwe) {
log.error(nwe.getMessage(), nwe);
} catch (KeyNotFoundException | FieldDataInvalidException | CannotWriteException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeAlbum(String album) throws MetadataException {
public boolean writeAlbum(String album) {
try {
tag.setField(FieldKey.ALBUM, album);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (KeyNotFoundException | FieldDataInvalidException | CannotWriteException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeTrackNumber(String trackNumber) throws MetadataException {
public boolean writeTrackNumber(String trackNumber) {
try {
if (StringUtils.isEmpty(trackNumber)) {
return false;
}
tag.setField(FieldKey.TRACK, trackNumber);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (KeyNotFoundException | FieldDataInvalidException | CannotWriteException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeTotalTracksNumber(String totalTracksNumber) throws MetadataException {
public boolean writeTotalTracksNumber(String totalTracksNumber) {
try {
if (StringUtils.isEmpty(totalTracksNumber)) {
return false;
}
tag.setField(FieldKey.TRACK_TOTAL, totalTracksNumber);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (KeyNotFoundException | FieldDataInvalidException | CannotWriteException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeCoverArt(Image lastfmCoverArt) throws MetadataException {
public void writeCoverArt(Image lastfmCoverArt) {
try {
File coverArtFile = imageUtils.saveCoverArtToFile(lastfmCoverArt);
Artwork artwork = artworkHelper.createArtwork();
artwork.setFromFile(coverArtFile);
tag.setField(artwork);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (IOException ioe) {
throw new MetadataException(ioe.getMessage());
} catch (NullPointerException nue) {
throw new MetadataException(nue.getMessage());
} catch (KeyNotFoundException
| FieldDataInvalidException
| CannotWriteException
| IOException
| NullPointerException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean removeCoverArt() throws MetadataException {
public boolean removeCoverArt() {
try {
tag.deleteArtworkField();
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (KeyNotFoundException | CannotWriteException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeCdNumber(String cdNumber) throws MetadataException {
public boolean writeCdNumber(String cdNumber) {
try {
if (StringUtils.isEmpty(cdNumber)) {
return false;
}
tag.setField(FieldKey.DISC_NO, cdNumber);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (NullPointerException nue) {
throw new MetadataException(nue.getMessage());
} catch (KeyNotFoundException
| FieldDataInvalidException
| CannotWriteException
| NullPointerException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeTotalCds(String totalCds) throws MetadataException {
public boolean writeTotalCds(String totalCds) {
try {
if (StringUtils.isEmpty(totalCds)) {
return false;
}
tag.setField(FieldKey.DISC_TOTAL, totalCds);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (NullPointerException nue) {
throw new MetadataException(nue.getMessage());
} catch (KeyNotFoundException
| FieldDataInvalidException
| CannotWriteException
| NullPointerException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeYear(String year) throws MetadataException {
public boolean writeYear(String year) {
try {
if (StringUtils.isEmpty(year)) {
return false;
}
tag.setField(FieldKey.YEAR, year);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (NullPointerException nue) {
throw new MetadataException(nue.getMessage());
} catch (KeyNotFoundException
| FieldDataInvalidException
| CannotWriteException
| NullPointerException kne) {
throw new BusinessException(kne.getMessage());
}
}

public boolean writeGenre(String genre) throws MetadataException {
public boolean writeGenre(String genre) {
try {
if (StringUtils.isEmpty(genre)) {
return false;
}
tag.setField(FieldKey.GENRE, genre);
audioFile.commit();
return true;
} catch (KeyNotFoundException kne) {
throw new MetadataException(kne.getMessage());
} catch (FieldDataInvalidException fie) {
throw new MetadataException(fie.getMessage());
} catch (CannotWriteException nwe) {
throw new MetadataException(nwe.getMessage());
} catch (NullPointerException nue) {
throw new MetadataException(nue.getMessage());
} catch (KeyNotFoundException
| FieldDataInvalidException
| CannotWriteException
| NullPointerException kne) {
throw new BusinessException(kne.getMessage());
}
}
}
Loading