Code Duplication    Length = 30-31 lines in 2 locations

lib/Doctrine/ODM/MongoDB/Proxy/ProxyFactory.php 2 locations

@@ 130-160 (lines=31) @@
127
        ReflectionProperty $reflectionId
128
    ) {
129
        if ($classMetadata->getReflectionClass()->hasMethod('__wakeup')) {
130
            return function (BaseProxy $proxy) use ($documentPersister, $reflectionId) {
131
                $proxy->__setInitializer(null);
132
                $proxy->__setCloner(null);
133
134
                if ($proxy->__isInitialized()) {
135
                    return;
136
                }
137
138
                $properties = $proxy->__getLazyProperties();
139
140
                foreach ($properties as $propertyName => $property) {
141
                    if ( ! isset($proxy->$propertyName)) {
142
                        $proxy->$propertyName = $properties[$propertyName];
143
                    }
144
                }
145
146
                $proxy->__setInitialized(true);
147
                $proxy->__wakeup();
148
149
                $id = $reflectionId->getValue($proxy);
150
151
                if (null === $documentPersister->load(array('_id' => $id), $proxy)) {
152
                    if ( ! $this->lifecycleEventManager->documentNotFound($proxy, $id)) {
153
                        throw DocumentNotFoundException::documentNotFound(get_class($proxy), $id);
154
                    }
155
                }
156
157
                if ($proxy instanceof NotifyPropertyChanged) {
158
                    $proxy->addPropertyChangedListener($this->uow);
159
                }
160
            };
161
        }
162
163
        return function (BaseProxy $proxy) use ($documentPersister, $reflectionId) {
@@ 163-192 (lines=30) @@
160
            };
161
        }
162
163
        return function (BaseProxy $proxy) use ($documentPersister, $reflectionId) {
164
            $proxy->__setInitializer(null);
165
            $proxy->__setCloner(null);
166
167
            if ($proxy->__isInitialized()) {
168
                return;
169
            }
170
171
            $properties = $proxy->__getLazyProperties();
172
173
            foreach ($properties as $propertyName => $property) {
174
                if ( ! isset($proxy->$propertyName)) {
175
                    $proxy->$propertyName = $properties[$propertyName];
176
                }
177
            }
178
179
            $proxy->__setInitialized(true);
180
181
            $id = $reflectionId->getValue($proxy);
182
183
            if (null === $documentPersister->load(array('_id' => $id), $proxy)) {
184
                if ( ! $this->lifecycleEventManager->documentNotFound($proxy, $id)) {
185
                    throw DocumentNotFoundException::documentNotFound(get_class($proxy), $id);
186
                }
187
            }
188
189
            if ($proxy instanceof NotifyPropertyChanged) {
190
                $proxy->addPropertyChangedListener($this->uow);
191
            }
192
        };
193
    }
194
195
    /**