136 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
/*
 | 
						|
 * Copyright 2007 ZXing authors
 | 
						|
 *
 | 
						|
 * Licensed 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.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Zxing;
 | 
						|
 | 
						|
/**
 | 
						|
 * <p>Encapsulates the result of decoding a barcode within an image.</p>
 | 
						|
 *
 | 
						|
 * @author Sean Owen
 | 
						|
 */
 | 
						|
final class Result
 | 
						|
{
 | 
						|
    private $text;
 | 
						|
    private $rawBytes;
 | 
						|
    private $resultPoints;
 | 
						|
    private $format;
 | 
						|
    private $resultMetadata;
 | 
						|
    private $timestamp;
 | 
						|
 | 
						|
    public function __construct(
 | 
						|
        $text,
 | 
						|
        $rawBytes,
 | 
						|
        $resultPoints,
 | 
						|
        $format,
 | 
						|
        $timestamp = ''
 | 
						|
    ) {
 | 
						|
 | 
						|
        $this->text           = $text;
 | 
						|
        $this->rawBytes       = $rawBytes;
 | 
						|
        $this->resultPoints   = $resultPoints;
 | 
						|
        $this->format         = $format;
 | 
						|
        $this->resultMetadata = null;
 | 
						|
        $this->timestamp      = $timestamp ?: time();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return raw text encoded by the barcode
 | 
						|
     */
 | 
						|
    public function getText()
 | 
						|
    {
 | 
						|
        return $this->text;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}
 | 
						|
     */
 | 
						|
    public function getRawBytes()
 | 
						|
    {
 | 
						|
        return $this->rawBytes;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return points related to the barcode in the image. These are typically points
 | 
						|
     *         identifying finder patterns or the corners of the barcode. The exact meaning is
 | 
						|
     *         specific to the type of barcode that was decoded.
 | 
						|
     */
 | 
						|
    public function getResultPoints()
 | 
						|
    {
 | 
						|
        return $this->resultPoints;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return {@link BarcodeFormat} representing the format of the barcode that was decoded
 | 
						|
     */
 | 
						|
    public function getBarcodeFormat()
 | 
						|
    {
 | 
						|
        return $this->format;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be
 | 
						|
     *   {@code null}. This contains optional metadata about what was detected about the barcode,
 | 
						|
     *   like orientation.
 | 
						|
     */
 | 
						|
    public function getResultMetadata()
 | 
						|
    {
 | 
						|
        return $this->resultMetadata;
 | 
						|
    }
 | 
						|
 | 
						|
    public function putMetadata($type, $value)
 | 
						|
    {
 | 
						|
        if ($this->resultMetadata === null) {
 | 
						|
            $this->resultMetadata = [];
 | 
						|
        }
 | 
						|
        $resultMetadata[$type] = $value;
 | 
						|
    }
 | 
						|
 | 
						|
    public function putAllMetadata($metadata)
 | 
						|
    {
 | 
						|
        if ($metadata !== null) {
 | 
						|
            if ($this->resultMetadata === null) {
 | 
						|
                $this->resultMetadata = $metadata;
 | 
						|
            } else {
 | 
						|
                $this->resultMetadata = array_merge($this->resultMetadata, $metadata);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function addResultPoints($newPoints)
 | 
						|
    {
 | 
						|
        $oldPoints = $this->resultPoints;
 | 
						|
        if ($oldPoints === null) {
 | 
						|
            $this->resultPoints = $newPoints;
 | 
						|
        } else if ($newPoints !== null && count($newPoints) > 0) {
 | 
						|
            $allPoints          = fill_array(0, count($oldPoints) + count($newPoints), 0);
 | 
						|
            $allPoints          = arraycopy($oldPoints, 0, $allPoints, 0, count($oldPoints));
 | 
						|
            $allPoints          = arraycopy($newPoints, 0, $allPoints, count($oldPoints), count($newPoints));
 | 
						|
            $this->resultPoints = $allPoints;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function getTimestamp()
 | 
						|
    {
 | 
						|
        return $this->timestamp;
 | 
						|
    }
 | 
						|
 | 
						|
    public function toString()
 | 
						|
    {
 | 
						|
        return $this->text;
 | 
						|
    }
 | 
						|
}
 |