I'm in the middle of developing a video store rental application for a school  project but am starting to question whether I'm going about things in the correct manner. Although the application is producing the desired results, I have a suspicion there's a more efficient way of coding/designing it. Any suggestions on how I can improve the design pattern of my code would be greatly appreciated.Here's my main class:public class PurpleBox implements AdminADT, UserADT {// class variablesprivate Double volumeDiscount; private Double priceDVD;private Double priceBluray;private String promoCode;private String adminPassword;private String adminName;private String userName;private String userEmail;private boolean unitDisabled;private final ArrayList<Movie> shoppingCart;private final Map<String, Movie> movieList = new HashMap<String, Movie>() {{    put(Sleepy Hollow, new Movie(Sleepy Hollow, Sci-Fi, 2014, 1, false));    put(Dumb and Dumber, new Movie(Dumb and Dumber, Comedy, 2002, 2, false));    }}; public PurpleBox() {    shoppingCart = new ArrayList<>();    priceDVD = 1.99;    priceBluray = 2.99;    volumeDiscount = .05;    promoCode = 10OFFMOV;    unitDisabled = false;}@Overridepublic void addMovieToShoppingCart(String name) {    if(movieList.containsKey(name))     {             Movie movie = movieList.remove(name);        shoppingCart.add(movie);    } // end if    else {        System.out.print(Error: There is no movie by that name.);    }} // end addMovieToCart@Overridepublic Movie removeMovieFromShoppingCart(int index) {return shoppingCart.remove(index);} // end removeMovieFromCart@Overridepublic ArrayList<Movie> viewShoppingCart() {    return shoppingCart;}@Overridepublic void removeAllMoviesFromShoppingCart() {shoppingCart.clear();   } // end removeAllMoviesFromCart@Overridepublic void seeAvailableMovies() {           for(Map.Entry<String, Movie> entry : movieList.entrySet()) {        if(!(entry.getValue().isEmpty())) {            System.out.print(entry.getValue().getTitle());        } // end if    } // end for} // end seeAvailableMovies@Overridepublic HashMap<String, Movie> search(String movieTitle) {   return null;}@Overridepublic void checkout() {}@Overridepublic void returnMovie(Movie movie) {movieList.put(movie.getTitle(), movie);}@Overridepublic void addMovieToInventory(Movie aMovie) {            // make sure movie doesn't already existif(!movieList.containsKey(aMovie.getTitle())) {     movieList.put(aMovie.getTitle(), aMovie);       } // end if} // end addMovieToInventory@Overridepublic void addMovieToInventory(String title, String genre, int year, int quantity, boolean isbluray) {    addMovieToInventory(new Movie(title, genre, year, quantity, isbluray));} // end addMovieToInventory@Overridepublic void removeMovieFromInventory(Movie aMovie) {//remove from storemovieList.remove(aMovie.getTitle());    } // end removeMovieFromInventory@Overridepublic void removeMovieFromInventory(String movieTitle) {if (movieList.get(movieTitle) == null)     System.out.println(No movie found with that title.);else     removeMovieFromInventory(movieList.get(movieTitle));} // end removeMovieFromInventorypublic void listMoviesByType(String aType) {} // end listMoviesByTypepublic String getPromoCode() {return promoCode;   }@Overridepublic void setPromoCode(String promocode) {this.promoCode = promocode; }public Double getVolumeDiscount() {return volumeDiscount;  }@Overridepublic void setVolumeDiscount(double percentage) {this.volumeDiscount = percentage;   }public boolean getUnitState() {    return unitDisabled;}@Overridepublic void setUnitState(boolean unitState) {unitDisabled = unitState;}    @Overridepublic void setBlurayPrice(Double price) {    this.priceBluray = price;}public double getBluerayPrice() {    return priceBluray;}    @Overridepublic void setDVDPrice(Double price) {    this.priceDVD = price;}public double getDVDPrice() {    return priceDVD;}@Overridepublic void setAdminPassword(String password) {    this.adminPassword = password;}@Overridepublic String getAdminPassword() {    return adminPassword;}   } // end PurpleBoxThe User interface:public interface UserADT {/** *  * @param userName user name */public void setUserName(String userName);/** *  * @return user name */public String getUserName();  /** *  * @param emailAddress email address */public void setEmail(String emailAddress);/** *  * @return user's email address */public String getEmail();/** * @param movieTitle search by movie title * @return returns movie searched */public HashMap<String, Movie> search(String movieTitle);/** * @param movieName movie to add to shopping cart */public void addMovieToShoppingCart(String movieName);/** * @param index remove movie by index * @return returns the movie that was removed from cart */public Movie removeMovieFromShoppingCart(int index);/** * @return current shopping cart */public ArrayList<Movie> viewShoppingCart();/** * removes all movies from shopping cart */public void removeAllMoviesFromShoppingCart();/** * returns available movies */public void seeAvailableMovies();/** * checkout movies in shopping cart */public void checkout();/** * @param movie movie to return to inventory */public void returnMovie(Movie movie);} // end UserADTThe Admin interface:public interface AdminADT {/** * @param adminName admin's name */public void setAdminName(String adminName);/** * @return admin's name */public String getAdminName();/** * @param password */public void setPassword(String password);/** * @return return admin's password */public String getPassword();   /** * @param movie movie to add to inventory */public void addMovieToInventory(Movie movie);/** * @param title  * @param genre  * @param year  * @param quantity  * @param isbluray  */public void addMovieToInventory(String title, String genre, int year, int quantity, boolean isbluray);/** * @param movie */public void removeMovieFromInventory(Movie movie); /** * @param movieTitle */public void removeMovieFromInventory(String movieTitle);   /** * @param price DVD price */public void setDVDPrice(Double price); /** * @param price Blu-Ray price */public void setBlurayPrice(Double price);/** * @param promoCode the promo code */public void setPromoCode(String promoCode); /** * @param volume volume discount */public void setVolumeDiscount(double volume);/** * @return unit's state, disabled or enabled */public boolean getUnitState();/** * @param unitState if true, disable unit */public void setUnitState(boolean unitState);   } // end AdminADT
Video Store Rental Application
java;object oriented;inheritance