001package jmri.jmrix.dcc4pc;
002
003import javax.annotation.Nonnull;
004import jmri.Reporter;
005
006/**
007 * Dcc4PcReporterManager implements the ReporterManage for dcc4pc
008 *
009 * @author Kevin Dickerson Copyright (C) 2012
010 */
011public class Dcc4PcReporterManager extends jmri.managers.AbstractReporterManager {
012
013    // ctor has to register for LocoNet events
014    public Dcc4PcReporterManager(Dcc4PcTrafficController tc, Dcc4PcSystemConnectionMemo memo) {
015        super(memo);
016    }
017
018    /**
019     * {@inheritDoc}
020     */
021    @Override
022    @Nonnull
023    public Dcc4PcSystemConnectionMemo getMemo() {
024        return (Dcc4PcSystemConnectionMemo) memo;
025    }
026
027    @Nonnull
028    @Override
029    protected Reporter createNewReporter(@Nonnull String systemName, String userName) throws IllegalArgumentException {
030        Reporter r = new Dcc4PcReporter(systemName, userName);
031        register(r);
032        return r;
033    }
034    
035    /**
036     * Validates to contain at least 1 number . . .
037     * <p>
038     * TODO: Custom validation for Dcc4PcReporterManager could be improved.
039     * {@inheritDoc}
040     */
041    @Override
042    @Nonnull
043    public String validateSystemNameFormat(@Nonnull String name, @Nonnull java.util.Locale locale) throws jmri.NamedBean.BadSystemNameException {
044        return validateTrimmedMin1NumberSystemNameFormat(name,locale);
045    }
046
047}