private String map(int areaOne, int areaOneForth, int areaOneSixteenth)
            throws NodeMeaningKeyErrorException {
        if (areaOne < minOne || areaOne > maxOne) {
            throw new NodeMeaningKeyErrorException();
        }
        if (areaOneForth < minOneForth || areaOneForth > maxOneForth) {
            throw new NodeMeaningKeyErrorException();
        }
        if (areaOneSixteenth < minOneSixteenth
                || areaOneSixteenth > maxOneSixteenth) {
            throw new NodeMeaningKeyErrorException();
        }
        areaOne -= minOne;
        areaOneForth -= minOneForth;
        areaOneSixteenth -= minOneSixteenth;
        int areaOneForthLength = maxOneForth - minOneForth + 1;
        int areaOneSixteenthLength = maxOneSixteenth - minOneSixteenth + 1;
        int value = areaOne * areaOneForthLength * areaOneSixteenthLength
                + areaOneForth * areaOneSixteenthLength + areaOneSixteenth;
        return String.valueOf(value);
    }